我试图将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
当函数调用被函数中的代码替换时,此代码有效,但由于它被多次调用,我需要它在函数中而不是复制代码.感谢您的时间,如果您需要更详细的解释,请告诉我.
第一个问题
这条线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