给你以下代码 删除工作簿所有表格内容 不管是10个也好 100个也好 通通删除掉
Sub test()
For i = 1 To Sheets.Count
Sheets(i).Activate
Cells.ClearContents
Next
End Sub
如果你指的是 nm,并且100个工作表名就是1~100,那么可以用Split
Dim nm
Dim strnm As String, i As Integer
strnm = "" '先组成 “1,2,3,4,……”这样的字符串
For i = 1 To 100
strnm = strnm & i & "," '也可以用其他分隔符
Next i
strnm = Left(strnm, Len(strnm) - 1) '删除最后一个分割逗号
nm = Split(strnm, ",")
这样就得到了一个1~100的数组
当然,工作表名前面还可以有Sheet或其他字母、文字【在组合时进行适当更改】,只要有一部分有规律,能循环就行。
如果100个名称没有规律,不能用循环,这个方法就没有用了。如果工作表是同一个工作簿(Workbook),可以Sheets(1)、Sheets(100)这样引用,不非得用字符串的Sheet名。
dim语句中的integer都改为Long,因为Integer正数最大为32767
另外,大量循环应该考虑将表格读入数组,用数组参与循环,提高速度。
比如使用语句:A1=Worksheets("样本1").usedrange
则生成A1数组,A1(i,1)就相当于cells(i,1)
另外可以学习VBA的字典法,进一步提高匹配速度
这样可以么?
你这个过程很容易看出问题来呀,你最开始定义了一个变量dim j 并且 j=0 那么 worksheets("第二部分").cells(j,9) 肯定报错,因为工作表当中的单元格最小的行数是1,不是0 所以你至少应该把j=1而不是j=0
上图片,不懂你100个工作表有什么规律,你这按钮也就是清空工作表么,for each循环一下不就全搞定了。