初学者,请大家莫嫌弃.
是这样的,我需要在当前表取a列取得此工作簿的所有的表名.写了vba是这样的.
第一种写法---正确
Sub 取表名() Dim i As Integer For i = 1 To Sheets.Count Sheets(1).Range("a" & i ) =Sheets(i).Name Next
End Sub
第二种写法for each--正确 Sub test() Dim sht As Worksheet
Dim i As Integer For Each sht In Worksheets
i = i+ 1
Range("a" & i) = sht.Name
Next
End Sub
第三种写法---for each+for的循环--错误
Sub 取表名错误写法()
Dim sht AsWorksheet
Dim i AsInteger
For Eachsht In Worksheets
For i = 1To Sheets.Count
Range("a" & i)= sht.Name
‘就是这里出现了巨大错误,a1-a10都等于最后一张表的名字
Next
Next
End Sub
我就不明白了
for i=1 tosheets.count 与 i=i+1 大家不都差不多嘛???结果确实不一致.我的脑袋敲破了,也想不出来.请各位亲朋好友们帮帮忙~
|