Vba 在Visual Basic中将字符串值设置为基于单元格的变量

Vba 在Visual Basic中将字符串值设置为基于单元格的变量,vba,excel,Vba,Excel,我有一个简单的问题,应该很容易回答。我试图使字符串反映单元格的值。它将导入的电子表格的命名方案是“(CSV)&(“[1].CSV”),没有空格。CSV是B5的值。如果变量CSV=WASHINGTON,我需要读取该行 Windows(WASHINGTON[1].csv).Activate 下面是我的情况。我的CSV变量有一个错误 Sub Import_CSV() Import_CSV Macro Dim CSV As Long Application.DisplayAlert

我有一个简单的问题,应该很容易回答。我试图使字符串反映单元格的值。它将导入的电子表格的命名方案是“(CSV)&(“[1].CSV”),没有空格。CSV是B5的值。如果变量CSV=WASHINGTON,我需要读取该行

Windows(WASHINGTON[1].csv).Activate
下面是我的情况。我的CSV变量有一个错误

Sub Import_CSV()

Import_CSV Macro

    Dim CSV As Long
    Application.DisplayAlerts = False
    Windows("Records.xlsm").Activate
    Worksheets("Data").Activate
    CSV = Cells(5, "B").Value
    Windows(CSV & "[1].csv").Activate
    Rows("1:2").Select
    Range("A2").Activate
    Selection.Cut ... etc

非常感谢您的帮助。

您已声明
CSV为Long
,但您需要的是
字符串
数据类型。这几乎肯定会导致任何非数值的不匹配错误

Dim CSV声明为String
,这样应该可以解决它

注意:这假定指定的文件已打开。如果未打开,则在
.Activate
语句中会出现错误

您还应该避免使用
Activate
Select
方法。这里有一些资源解释了原因:


请在将来更好地描述您的实际问题——如果您收到错误消息,请指出该消息是什么,以及它在哪一行引发。这对试图帮助您的其他人非常有帮助。

我的错误是什么?为什么不告诉我们错误是什么,然后也许我们可以告诉您如何修复它。您已将
CSV声明为Long
,但您需要的是
字符串
数据类型。这几乎肯定会导致任何非数字值的不匹配错误。非常正确。我的短语一点也不好。对此我深表歉意。找到了一个回答我问题的网站: