2013-09-30 14 views
9
For i = 1 To 20 

    '' select the cell in question 
    Cells.Find(...).Select 

    '' get the cell address 

    CellAddr = Selection.Address(False, False, xlR1C1) 



Next 

Powyższy kod służy do wyszukiwania arkusza kalkulacyjnego w celu znalezienia określonego ciągu znaków, a następnie jego wyboru. Chciałbym uzyskać adres komórki za pomocą Selection.Address, która w tym przypadku zwraca coś podobnego do linii R[100]C. Czy istnieje sposób, w jaki mogę podzielić ten wynik na wartości wierszy i kolumn, aby móc nimi manipulować w kodzie? Chciałbym, na przykład, dodać 14 wierszy do wartości rzędu wybranych komórek. Wierzę, że CellAddr będzie obiektem Range, więc może działać, jestem po prostu niewyraźny w implementacji.excel vba uzyskiwanie wiersza, wartość komórki z select.address

Dzięki!

Odpowiedz

9
Dim f as Range 

Set f=ActiveSheet.Cells.Find(...) 

If Not f Is Nothing then 
    msgbox "Row=" & f.Row & vbcrlf & "Column=" & f.Column 
Else 
    msgbox "value not found!" 
End If 
+1

+ 1 Właściwy sposób to zrobić :) –

+0

dziękuję, to jest świetne – Brian

12

Czy tego właśnie szukasz?

Sub getRowCol() 

    Range("A1").Select ' example 

    Dim col, row 
    col = Split(Selection.Address, "$")(1) 
    row = Split(Selection.Address, "$")(2) 

    MsgBox "Column is : " & col 
    MsgBox "Row is : " & row 

End Sub 
Powiązane problemy