在VBA中引用CSV文件
我正在尝试引用从Outlook导出的在VBA中引用CSV文件,vba,excel,csv,Vba,Excel,Csv,我正在尝试引用从Outlook导出的.csv文件。。。我尝试使用的代码给出了错误运行时错误“424”:需要对象 我猜是因为它不是.xls,.xlsm等格式?我如何将其引用为工作表 Sub test1() Dim PrimaryWB As Workbook Dim DataWS As Worksheets Set PrimaryWB = ThisWorkbook Set DataWS = Active.Worksheet Debug.Print Prim
.csv
文件。。。我尝试使用的代码给出了错误运行时错误“424”:需要对象
我猜是因为它不是.xls
,.xlsm
等格式?我如何将其引用为工作表
Sub test1()
Dim PrimaryWB As Workbook
Dim DataWS As Worksheets
Set PrimaryWB = ThisWorkbook
Set DataWS = Active.Worksheet
Debug.Print PrimaryWB.Name
Debug.Print DataWS.Name
End Sub
我的活动窗口是.csv
文件,此工作簿
正在引用我要将数据复制到的工作簿。错误发生在Set DataWS=Active上。工作表Set DataWS=Active。工作表语法无效。正确的sytnax是Set DataWS=ActiveSheet
然而,使用ActiveSheet
可能会有许多陷阱,尽管在某些特定情况下这是绝对必要的。这不是其中之一
请参阅此完全限定的代码,它将确保所有内容都设置为您想要的内容
Sub test1()
Dim PrimaryWB As Workbook
Dim DataWB As Workbook
Set PrimaryWB = ThisWorkbook
Set DataWB = Workbooks("myCSV.csv") 'Change name as needed
Dim DataWS as Worksheet
Set DataWS = DataWB.Sheets(1) 'CSV only has one sheet, so index is okay
Debug.Print PrimaryWB.Name
Debug.Print DataWS.Name
End Sub
Set DataWS=Active。工作表
语法无效。正确的sytnax是Set DataWS=ActiveSheet
然而,使用ActiveSheet
可能会有许多陷阱,尽管在某些特定情况下这是绝对必要的。这不是其中之一
请参阅此完全限定的代码,它将确保所有内容都设置为您想要的内容
Sub test1()
Dim PrimaryWB As Workbook
Dim DataWB As Workbook
Set PrimaryWB = ThisWorkbook
Set DataWB = Workbooks("myCSV.csv") 'Change name as needed
Dim DataWS as Worksheet
Set DataWS = DataWB.Sheets(1) 'CSV only has one sheet, so index is okay
Debug.Print PrimaryWB.Name
Debug.Print DataWS.Name
End Sub
这也可以与路径名一起使用吗?我试着用C:\PATH\test.csv
引用它,它说超出范围
,但是当我排除路径时,效果很好。如果我能让它使用路径名作为well@Maldred-路径名的唯一工作方式是文件已关闭。如果是这种情况,请使用Set DataWB=Workbooks.Open(“C:\PATH\test.csv”)
这非常好,而且工作非常完美!我还有最后一个问题,如何在不打开.csv
文件的情况下访问这些数据?或者最好在我完成后关闭它?它的路径名也可以吗?我试着用C:\PATH\test.csv
引用它,它说超出范围
,但是当我排除路径时,效果很好。如果我能让它使用路径名作为well@Maldred-路径名的唯一工作方式是文件已关闭。如果是这种情况,请使用Set DataWB=Workbooks.Open(“C:\PATH\test.csv”)
这非常好,而且工作非常完美!我还有最后一个问题,如何在不打开.csv
文件的情况下访问这些数据?还是最好在我处理完后再关上它?