在用戶選擇Excel中的整個列並且必須處理列中的單元格的情況下,如何高效地忽略空行。整個專欄有超過100萬個細胞!請幫忙!跳過Excel列中的空行
範圍來自
var range = Application.ActiveWindow.RangeSelection;
最後我想用做點什麼
for (int i = 0; i < range.Rows.Count; i++)
其中Rows.Count應該非空行數......也許有一種方式找到最後一個細胞的東西在裏面?
在用戶選擇Excel中的整個列並且必須處理列中的單元格的情況下,如何高效地忽略空行。整個專欄有超過100萬個細胞!請幫忙!跳過Excel列中的空行
範圍來自
var range = Application.ActiveWindow.RangeSelection;
最後我想用做點什麼
for (int i = 0; i < range.Rows.Count; i++)
其中Rows.Count應該非空行數......也許有一種方式找到最後一個細胞的東西在裏面?
像你想要什麼的上限是一個好主意聽起來我行數是這樣的,所以你最終不會循環到工作簿的底部。
如果是這種情況,那麼您可能正在尋找Worksheet.UsedRange
屬性,其中包含所有曾經使用的單元格的範圍(這包括輸入值然後刪除的單元格)。
例如,
Dim MaxUsedRow As Integer
MaxUsedRows = ActiveSheet.UsedRange.Row + ActiveSheet.UsedRange.Rows.Count - 1
MsgBox MaxUsedRows
將顯示整個工作簿上次使用的行的索引。
有幾個選項取決於你是否有你的範圍內空白(使用方法1),或者更簡單地說,如果你想找到上次使用的電池(使用方法3)
使用activesheet的A列這些選項作爲一個例子
1 SpecialCells
如果空細胞是真正空的,那麼你可以使用SpecialCells
與公式的單元格的工作(即開始=
)和/或恆定的細胞
Sub GetNonEmtpy()
Dim rng1 As Range
Dim rng2 As Range
On Error Resume Next
Set rng1 = Columns("A").SpecialCells(xlConstants)
Set rng2 = Columns("A").SpecialCells(xlFormulas)
On Error GoTo 0
If Not rng1 Is Nothing Then MsgBox "Constants in " & rng1.Address(0, 0)
If Not rng2 Is Nothing Then MsgBox "formula in " & rng2.Address(0, 0)
'then work with these ranges
End Sub
2.最後一個單元格查找
Sub LastCellLookup()
Dim rng1 As Range
Set rng1 = Cells(Rows.Count, "A").End(xlUp)
If rng1.Row <> 1 Then
MsgBox "last cell is " & rng1.Address(0, 0)
Else
'check first cell is not empty
If Len(rng1.Value) > 0 Then
MsgBox "last cell is " & rng1.Address(0, 0)
Else
MsgBox "row is blank"
End If
End If
End Sub
3.找到
Sub LastCellFind()
Dim rng1 As Range
Set rng1 = Columns("A").Find("*", [a1], xlValues, , xlByRows, xlPrevious)
If Not rng1 Is Nothing Then MsgBox "Last cell is " & rng1.Address(0, 0)
End Sub
我認爲這是我想要的。 – tofutim