我有一個例子,我想寫一個VBA語句來選擇單個列中的所有數據,列數據中沒有空格。列位置永遠不會改變,例如列A,數據從第3行開始。但列中的總行數會定期更改。選擇具有可變行數的列中的所有數據
我想要系統動態選擇列中的所有單元格,然後我可以針對這些選定的數據塊運行一個方法。
我有一個例子,我想寫一個VBA語句來選擇單個列中的所有數據,列數據中沒有空格。列位置永遠不會改變,例如列A,數據從第3行開始。但列中的總行數會定期更改。選擇具有可變行數的列中的所有數據
我想要系統動態選擇列中的所有單元格,然後我可以針對這些選定的數據塊運行一個方法。
嘗試
Dim LastRow as Long, sht as worksheet
Set sht = ThisWorkbook.Worksheets("My Sheet Name")
LastRow = sht.Cells(sht.Rows.Count, 1).End(xlUp).Row
sht.Range("A3:A" & LastRow).Select
像達倫Bartrup - 庫克說,你可能不需要選擇數據,幾乎總是可以直接執行操作是要快得多。
如果列「分離」意味着沒有其他非空單元格觸摸你的數據,你可以使用:
Range("firstCellInYourColumn").CurrentRegion.Select
(這種工作方式爲CTRL相同+ *從鍵盤)
以其它方式使用:
Range(Range("firstCellInYourColumn"), Range("firstCellInYourColumn").End(xlDown)).Select
都將工作如果真的有沒有空格數據中。 你還應該在工作表表達式中加上所有Range
,我省略了這一點。
至於不選擇它執行你的範圍內採取行動的例子:
Public Sub Test()
Dim rColA As Range
With ThisWorkbook.Worksheets("Sheet1")
Set rColA = .Range(.Cells(3, 1), .Cells(.Rows.Count, 1).End(xlUp))
MsgBox "Column A range is " & rColA.Address 'Delete if you want.
rColA.Interior.Color = RGB(255, 0, 0) 'Turn the back colour red.
rColA.Cells(2, 1).Insert Shift:=xlDown 'Insert a blank row at second cell in range
'So will insert at A4.
'If the first cell in your range is a number then double it.
If IsNumeric(rColA.Cells(1, 1)) Then
rColA.Cells(1, 1) = rColA.Cells(1, 1) * 2
End If
End With
End Sub
請您詳細說明的問題多一點。因爲現在我甚至沒有看到問號。 :) – larsemil
你想運行什麼方法?您可能不需要真正選擇數據 - 作爲一般規則,您不必在對範圍執行操作之前進行選擇。 –