Jestem nieco zdezorientowany przez komórki i zakres w vba (excel). Logicznie rzecz biorąc, mógłbym myśleć, że komórka jest zakresem o rozmiarze = 1; i myślę, że łatwo jest uzyskać zasięg z komórki.Excel vba: Zakres i komórka
Po przeczytaniu api właściwości EntireRow here działa ona w zakresie. Ale, praca poniżej kod, oznaczając „cell'variable wewnątrz pętli jest zakres
Set import = Sheets("import")
Set spRange = import.Range("A2")
Set spRange = import.Range("A2:" & spRange.End(xlDown).Address)
For Each cell In spRange
dict.Add cell.Offset(0, 2).Text, cell.EntireRow
Next cell
Jednocześnie, poniższy kod zwraca błąd wskazujący niezgodność typów kiedy wezwać removecell funkcję. Jaki powinien być typ targetCell w definicji funkcji?
Set spRange = mySheet.Range("b2", mySheet.Range("b2").End(xlDown))
For Each cell In spRange
val = removecell (cell)
Next cell
Public Function removecell(targCell As Range) As Boolean
removecell = False
End Function
Masz rację. Cell to Range z 1 pozycją. Czy 'val' jest typu' Boolean'? – shahkalpesh
tak. ta metoda działała poprzednio, gdy przekazałem "cell.Text" i zaakceptowałem ją w metodzie remove cellVal As String. Teraz próbuję przekazać komórkę (zakres) przez przepuszczenie komórki zamiast komórki.Text – bsr