根据Visual Basic中的单元格将String值设置为Variable

时间:2014-06-13 17:15:51

标签: excel vba excel-vba

我有一个简单的问题应该很容易回答。我试图使一个字符串反映一个单元格的值。它将导入的电子表格的命名方案是"(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

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

您已声明CSV As Long,但您期望获得String数据类型。这几乎肯定会导致任何非数字值的不匹配错误。

声明Dim CSV as String,然后解决它。

注意:这假定指定的文件已经打开。如果没有,您将在.Activate声明中收到错误。

您还应该避免使用ActivateSelect方法。这里有一些资源可以解释原因:

How to avoid using Select in Excel VBA macros

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