首先,不要笑。如果你这样做,那就静静地做吧。我不知道如何编写循环Visual Basic,但我拍了我最好的镜头。我正努力学习VBA,通过这样做,我只需要朝着正确的方向努力。我的想法是想编写一个简单的宏来查看每个工作表,评估是否存在第19-43行的分组,如果有分组,则删除分组,如果没有分组,则转到下一个工作表,如果没有更多工作表,则结束循环。
这是我的尝试,显然不起作用。
Dim V As Variant
V = ActiveWorksheet
For Each V In Workbook
Rows("a29:43").Select
Selection.Rows.Ungroup
Next
现在,我也不知道如果它被分组的话可以说什么资格,那么这个,如果没有分组,那么这个。我会想象它就像分组=真,但我无法弄明白。我非常感谢任何花些时间看这个的人。
答案 0 :(得分:0)
您需要定义要迭代的集合,因此在这种情况下,它将是工作簿中包含的工作表:
Dim wbk As Workbook
Dim sht As WorkSheet
Set wbk = ActiveWorkbook
For Each sht In wbk.Worksheets
sht.Rows("a29:43").Select ' this may give you trouble. Possibly try sht.Range("a29:a43").Select?
Selection.Rows.Ungroup
Next
Set wbk = Nothing ' Clean up our objects. Just to be sure.
顺便说一句,我不知道是否需要提及,但为了以防万一,我建议你不要使用单字符变量名。
答案 1 :(得分:0)
一些事情:
Ungroup
将失败。这有点像Autofilter
。Range
- 而不是Rows
,只使用Rows
的{{1}}属性 - 处理目标细胞时,除非另有不同方法是必要的或合理的。这是一个不那么不同的看法。请注意每个变量的明确声明。另外,阅读评论。他们不是最好的,但他们可以帮助你明显地学习更多的VBA。 ;)
Range
如果有帮助,请告诉我们。