Ms access 如何在函数中引用Excel工作表
我正在尝试调用excel工作表到函数,但出现错误Ms access 如何在函数中引用Excel工作表,ms-access,excel,ms-access-2007,vba,Ms Access,Excel,Ms Access 2007,Vba,我正在尝试调用excel工作表到函数,但出现错误438“对象不支持此属性或方法” 下面的代码调用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)
438“对象不支持此属性或方法”
下面的代码调用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
当函数调用替换为函数中的代码时,此代码有效,但是由于它被多次调用,我要求它位于函数中,而不是复制代码。谢谢您的时间,如果您需要更详细的解释,请告诉我 请尝试将您的第五行更改为:
Set wks7 = wkb.Sheets.Add
致:
工作表将包括工作簿中的所有工作表,包括图表工作表
第一个问题
行strDir&“\NEXTDAY.xls”
应该是strDir&“\NEXTDAY.xls”
。&
标志前后应留有空格
第二个问题
您已声明了wkb7
,但正在设置wks7=wkb.Sheets.Add中使用wkb
。我建议使用选项Explicit
第三个问题
按照@MarkHone的建议更改行,设置wks7=wkb.Sheets。将
添加到
Set wks7 = wkb7.Worksheets.Add
第四个问题(您的实际问题!)
applyStyle1
是一个需要返回某些内容的函数。如果您没有返回任何内容,请使用子项
比如说
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
好的和详细的答案,我同意选项显式建议。我不知道你为什么要把第五行分成两条语句?@MarkHone:对不起,我在测试一些东西,忘了更新。不过,我在第四道题中确实提到了正确的答案:)哦,是的,你提到了;然后没有抱怨:-)感谢@SiddharthRout的快速回复,我正在测试代码,但是在“applyStyle1 wks7”上出现错误。错误表明ByRef参数类型不匹配,但是在代码中两者都被引用为Excel.Worksheet。@KSM:您是否将Dim wks7声明为Excel.Worksheet
我在您的原始代码中没有看到这一点?谢谢您的帮助@MarkHone
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