我正在尝试将excel工作表调用到函数但是我收到错误438 "OBJECT DOESN'T SUPPORT THIS PROPERTY OR METHOD"
以下代码调用applyStyle1
Dim wkb7 As Excel.Workbook
Set wkb7 = Excel.Application.Workbooks.Open(strDir&"\NEXTDAY.xls")
wkb7.ActiveSheet.Cells.Select
Selection.Copy
Set wks7 = wkb.Sheets.Add
applyStyle1 (wks7)
功能:
Function applyStyle1(wksContainer As Excel.Worksheet)
With wksContainer
......
End With
End Function
当函数调用被函数中的代码替换时,此代码有效,但由于它被多次调用,我需要它在函数中而不是复制代码。感谢您的时间,如果您需要更详细的解释,请告诉我。
答案 0 :(得分:5)
第一个问题
第strDir&"\NEXTDAY.xls"
行应为strDir & "\NEXTDAY.xls"
。 &
符号之前和之后应该有一个空格。
第二个问题
您已声明wkb7
但在wkb
中使用Set wks7 = wkb.Sheets.Add
。我建议使用Option Explicit
第三个问题
将@MarkHone Set wks7 = wkb.Sheets.Add
建议的行更改为
Set wks7 = wkb7.Worksheets.Add
第四个问题(您的实际问题!)
applyStyle1
是一个需要返回内容的函数。如果您没有返回任何内容,请改为使用Sub
。
例如
Sub Sample()
Dim wkb7 As Excel.Workbook
Dim wks7 As Excel.Worksheet
Set wkb7 = Excel.Application.Workbooks.Open(strDir & "\NEXTDAY.xls")
wkb7.ActiveSheet.Cells.Copy
Set wks7 = wkb7.Worksheets.Add
applyStyle1 wks7
End Sub
Sub applyStyle1(wksContainer As Excel.Worksheet)
With wksContainer
End With
End Sub
答案 1 :(得分:3)
请尝试更改您的第5行:
Set wks7 = wkb.Sheets.Add
为:
Set wks7 = wkb.Worksheets.Add
表格将包括工作簿中的所有工作表,包括图表。