我想在Word宏中使用Excel工作表的CodeName。但是,在Word中,该属性似乎无法正常工作。
这件作品:
Dim sht As Object
Dim xlsobj_2 As Object
Dim sheetName As String
Set xlsobj_2 = CreateObject("Excel.Application")
xlsobj_2.Application.Visible = True 'I can see it opens as I expected.
Set xlsfile = xlsobj_2.Application.Workbooks.Open(folder & fileName, UpdateLinks:=0) 'You can create your own excel file.
Set sht = xlsfile.Sheets(sheetName)
MsgBox sht.Name 'This gives me the name of the sheet and I know it is correct.
这就是我想要的东西不起作用:
Dim sht As Object
Dim sheetName As String
Dim sheetName As String
...'Same as above.
MsgBox sht.CodeName
谢谢聪明的人!
答案 0 :(得分:0)
在创建工作表后第一次进入Visual Basic编辑器时,工作表仅分配了CodeName
。 (显然,在完成之后,您需要再次保存工作簿。)
在分配CodeName
之前,.CodeName
属性将返回一个空字符串。
这种效果常常令人困惑。例如,如果您使用默认的3个空工作表打开一个新工作簿,然后立即在第一个工作表之前插入另一个工作表,然后然后进入VBE,您将拥有
Name
"Sheet4"
和CodeName
Sheet1
Name
"Sheet1"
和CodeName
Sheet2
Name
"Sheet2"
和CodeName
Sheet3
Name
"Sheet3"
和CodeName
Sheet4