是否可以告诉范围忽略任何空单元格。例如,我开始我的宏,
Dim v, stMember
v = Sheets("Home").Range("B12:B14")
For Each stMember In v
由于 B12、B13 和 B14
中有一个值,因此没有显示错误。但我希望能够将范围扩展到 B22,但是如果范围内的单元格中没有任何内容,我会收到错误消息。它来自用户输入,因此他们永远不会输入超过 10 个值,但可能输入更少。
下面是完整的代码,但它很长,所以如果没有必要,我深表歉意。
Sub createSummary()
Dim Val As String
Val = Sheets("Home").Range("B3").Value
If SheetExists(Val) Then
MsgBox "Summary for " + Val + " already exists."
Else
Sheets.Add.Name = Val
Sheets(Val).Select
ActiveCell.Offset(1, 0).Select
Dim v, stMember
v = Sheets("Home").Range("B12:B14")
For Each stMember In v
Dim ws As Worksheet
Dim lastrow As Long
Set ws = ThisWorkbook.Sheets(stMember)
lastrow = ws.Cells(Rows.Count, 2).End(xlUp).Row
For i = 2 To lastrow
ws.Activate
If ws.Range("B" & i).Value = Val Then
Range("B" & i).EntireRow.Select
Selection.Copy
Sheets(Val).Select
ActiveCell.Offset(1, 0).Select
ActiveCell.End(xlToLeft).Select
ActiveCell.PasteSpecial paste:=xlPasteValues
Range("J" & ActiveCell.Row).Value = stMember
End If
Next i
Application.CutCopyMode = False
Next stMember
End If
End Sub
最佳答案
简单IsEmpty()应该做的;
if Not IsEmpty(stMember) then
' do something when not empty
...
关于excel - VB Excel 忽略范围内的空单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25408010/