在VBA中引用CSV文件

在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

我正在尝试引用从Outlook导出的
.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
文件的情况下访问这些数据?还是最好在我处理完后再关上它?