我想从excel中的另一个文件中获取一些数据来到我的主文件中,我对此代码完全没有问题:
Sub Call()
'
' Call Macro
'
'
ActiveCell.FormulaR1C1 = _
"=IF(('C:\Users\prosp\Documents\Kabu\[Book1.xlsx]Sheet1'!R[1]C[-1])-('C:\Users\prosp\Documents\Kabu\[Book1.xlsx]Sheet1'!R[1]C[-4])=0,""0"",('C:\Users\prosp\Documents\Kabu\[Book1.xlsx]Sheet1'!R[1]C[-1])-('C:\Users\prosp\Documents\Kabu\[Book1.xlsx]Sheet1'!R[1]C[-4]))"
Range("F4").Select
End Sub
但是如果文件的类型改为.csv文件,我就无法调用我想要使用的数据。代码是这样的:
Sub Call()
'
' Call Macro
'
'
ActiveCell.FormulaR1C1 = _
"=IF(('C:\Users\prosp\Documents\Kabu\[Book1.csv]Sheet1'!R[1]C[-1])-('C:\Users\prosp\Documents\Kabu\[Book1.csv]Sheet1'!R[1]C[-4])=0,""0"",('C:\Users\prosp\Documents\Kabu\[Book1.csv]Sheet1'!R[1]C[-1])-('C:\Users\prosp\Documents\Kabu\[Book1.csv]Sheet1'!R[1]C[-4]))"
Range("F4").Select
End Sub
如何使用该代码调用.csv文件? 有人可以帮我吗?
答案 0 :(得分:1)
您需要先将CSV文件导入/转换为Excel。否则,您无法使用公式访问它。这是因为CSV文件只是一个逗号分隔值的文本文件,如下所示:
Year,Make,Model,Length
1997,Ford,E350,2.34
2000,Mercury,Cougar,2.38
CSV文件没有像您可以轻松访问的Excel文件那样的行和列。因此必须首先将其转换为XLSX。所以它变成了:
A B C D
1 | Year | Make | Model | Length |
2 | 1997 | Ford | E350 | 2.34 |
3 | 2000 | Mercury | Cougar | 2.38 |
现在,您可以使用行和列的公式访问它。
所以我建议先打开CSV文件并将其另存为XLSX 另请参阅VBA converting csv Files in a folder to xlsx Files。