KSM*_*KSM 2 ms-access vba ms-access-2007 excel-vba access-vba
我试图将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)
Run Code Online (Sandbox Code Playgroud)
功能:
Function applyStyle1(wksContainer As Excel.Worksheet)
With wksContainer
......
End With
End Function
Run Code Online (Sandbox Code Playgroud)
当函数调用被函数中的代码替换时,此代码有效,但由于它被多次调用,我需要它在函数中而不是复制代码.感谢您的时间,如果您需要更详细的解释,请告诉我.
第一个问题
这条线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
Run Code Online (Sandbox Code Playgroud)
第四个问题(你的实际问题!)
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
Run Code Online (Sandbox Code Playgroud)