excel - VB Excel 忽略范围内的空单元格

标签 excel vba

是否可以告诉范围忽略任何空单元格。例如,我开始我的宏,

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/

相关文章:

arrays - 在 VBA 中将一维数组分配给二维数组

vba - 如何在当前位置使用VBA另存为

vba - Excel 工作表 : Copy data from one workbook to another workbook

excel - 如何在 Excel VBA 中创建 MS Access 运行时对象

excel - Excel 中的 VBA : Global Constants File

excel - 只要单元格等于相同的值,就将行加在一起

audio - 每当单元格值发生变化时,都会弹出一个窗口

vba - 在 Excel VBA 中检查两个范围是否相等的最快方法

regex - 替换事件电子邮件草稿正文中的字符串

excel - 根据主文件中的单元格值将多个文件中的数据复制到主文件