我正在整理一个快速脚本,将表中的某些数据编译为更“可上传”的格式。我有一个三元组For循环,可以循环浏览6个工作表,查看A2:A100范围内的“集群”名称,并在下面定义为H1,J1,L1等的范围内选择每个“集群”中的分支编号。
代码可以编译,但似乎没有跳过空白单元格。如果找到一个空白的分支编号,我希望脚本继续前进到下一个群集,并且如果找到了一个空白的群集继续前进到下一个工作表,直到完成所有6个查找。
我想要输出的数据是按列:群集名称|回扣分支编号,当发现分支编号为空白时,我的脚本当前将返回所有三个字段!我希望这是有道理的。我的代码在下面-请您看看,让我知道怎么了吗?
Sub Clusterise()
Dim WSCount, Sheet As Integer
Dim Counter, CCounter As Integer
Dim Clusters, C As Range
Dim Branches, B As Range
Counter = 0
WSCount = ActiveWorkbook.Worksheets.Count
For Sheet = 2 To WSCount
Set Clusters = Worksheets(Sheet).Range("A2:A100")
Set Branches = Worksheets(Sheet).Range("H1, J1, L1, ...etc. up to BN1") 'Too long to display it all
CCounter = 1
For Each C In Clusters
If Not IsEmpty(C) Then
For Each B In Branches
If Not IsEmpty(B.Offset(CCounter, 0)) Then
Sheets("Clusterisor").Range("A1").Offset(Counter, 0) = C.Value
Sheets("Clusterisor").Range("B1").Offset(Counter, 0) = C.Offset(0, 5).Value
Sheets("Clusterisor").Range("C1").Offset(Counter, 0) = B.Offset(CCounter, 0).Value
Counter = Counter + 1
End If
Next B
CCounter = CCounter + 1
End If
Next C
Next Sheet
End Sub
答案 0 :(得分:2)
TLDR:
将ListView
更改为If Not IsEmpty(C) Then
返回一个布尔值,该值指示变量是否已初始化。语法-IsEmpty(expression)必需的expression参数是一个包含字母数字或字符串表达式的Variant。但是,由于IsEmpty用于确定是否初始化了各个变量,因此expression参数通常是单个变量名。备注:如果变量未初始化或显式设置为Empty,则IsEmpty返回True;否则,返回0。否则,它返回False。如果expression包含多个变量,则始终返回False。 IsEmpty仅返回有关变体的有意义的信息。
IsEmpty()仅应用于检查变量是否已初始化。这是什么意思?在VBA中,一旦声明不带单词If C <> "" Then
的变量,就不会初始化该变量。检查一下:
New