我正在尝试使用功能打开文件。如果我通过按钮调用相同的代码,则该代码也有效。该文件将打开,我可以对其进行修改,也可以不保存将其关闭。但是,如果我使用该函数调用的相同代码,则该文件将不会打开。为什么?遵循按钮和功能使用的代码。有人可以帮我吗?这仅仅是我所需要的开始。详细说明,使用此功能,我需要打开一个CSV文件,修复CSV文件,使用Dlookup提取数据并将此数据写入我调用该函数的单元格中。如果我通过按钮调用我的代码,但是如果我使用单元格中的函数调用它,则无法使用
Sub Button1_Click()
Dim path As String
Dim xl As Excel.Application
Dim wk As Excel.Workbook
path = ActiveWorkbook.path & "\Book1.xlsm"
Set xl = Excel.Application
Set wk = xl.Workbooks.Open(path)
xl.Visible = True
wk.Activate
xl.DisplayAlerts = False
Range("B2").Select
Range("B2").Value = "hello world"
wk.Saved = False
wk.Close
Set wk = Nothing
End sub
Public Function aprifile()
Dim path As String
Dim xl As Excel.Application
Dim wk As Excel.Workbook
path = ActiveWorkbook.path & "\Book1.xlsm"
Set xl = Excel.Application
Set wk = xl.Workbooks.Open(path)
xl.Visible = True
wk.Activate
xl.DisplayAlerts = False
Range("B2").Select
Range("B2").Value = "hello world"
wk.Saved = False
wk.Close
Set wk = Nothing
End Function
答案 0 :(得分:-1)
这里有两件事。
首先,我将事物设置为Sub而不是Function,因为您未返回任何内容。
显式选项
公共Sub aprifile()
作为字符串的昏暗路径 Dim xl作为应用程序 昏暗的工作簿
path = ActiveWorkbook.path和“ \ Book1.xlsm” 如果Len(Dir $(path))> 0然后
Set xl = Excel.Application
Set wk = xl.Workbooks.Open(path)
xl.Visible = True
wk.Activate
xl.DisplayAlerts = False
wk.ActiveSheet.Range("B2").Select
wk.ActiveSheet.Range("B2").Value = "hello world"
wk.Saved = False
wk.Close
Set wk = Nothing
如果结束 结束
第二件事是我放置了“ wk.ActiveSheet”以确保我写的是正确的工作表。没有这些,我发现我正在写错工作簿。
您所做的另一件事是,我检查了文件是否存在。我发现我的第一次跑步并没有,因此可能会为您提供线索。
但是,我可以向您保证此代码有效,因为我刚刚在这里完成了此操作。
希望这会有所帮助 马尔克