Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 将变量设置为值会产生运行时错误1004:应用程序定义的错误或对象定义的错误_Excel_Vba - Fatal编程技术网

Excel 将变量设置为值会产生运行时错误1004:应用程序定义的错误或对象定义的错误

Excel 将变量设置为值会产生运行时错误1004:应用程序定义的错误或对象定义的错误,excel,vba,Excel,Vba,我试图在工作表“代码”的A列中获取一个值数组,然后获取一个名称以“价格计划”开头的所有工作表的数组* 我的“开始”按钮位于名为“宏”的工作表中,我正试图从名为“代码”的工作表的“a”列中获取数据 Private Sub Start_Click_Click() Dim wS As Worksheet, LastRow As Long Dim codeArray As Variant Dim lastCell As String Dim curSheet As Wo

我试图在工作表“代码”的A列中获取一个值数组,然后获取一个名称以“价格计划”开头的所有工作表的数组*

我的“开始”按钮位于名为“宏”的工作表中,我正试图从名为“代码”的工作表的“a”列中获取数据

Private Sub Start_Click_Click()

    Dim wS As Worksheet, LastRow As Long
    Dim codeArray As Variant
    Dim lastCell As String
    Dim curSheet As Worksheet
    Dim ArraySheets() As String
    Dim x As Variant

    Set wS = ThisWorkbook.Worksheets("Codes")

    'Here we look in Column A
    LastRow = wS.Cells(wS.Rows.Count, "A").End(xlUp).Row
    lastCell = "A" & Str(LastRow)

    'Here we create array of our row values
    ThisWorkbook.Sheets("Codes").Activate
    Set codeArray = ActiveSheet.range("A2:" & lastCell).Value

    'Getting Array of Price Plan Sheets
    For Each curSheet In ActiveWorkbook.Worksheets
        If curSheet.Name Like "Price_Plan*" Then
            ReDim Preserve ArraySheets(x)
            ArraySheets(x) = curSheet.Name
            x = x + 1
        End If
    Next curSheet

End Sub
我在以下位置收到此运行时错误:

Set codeArray = ActiveSheet.range("A2:" & lastCell).Value

删除单词
Set
-
.Value
不返回
对象
,它返回一个
值的二维数组
Str
将一个空格前置为正值,因此您最终得到的是例如
A5
,而不是
A5
。只需使用
“A2:A”&LastRow
。谢谢@braX做了建议的更改,代码现在似乎正在运行。我假设您也做了@GSerg建议的更改,因为他也是正确的。@braX是的,完成了这些更改。干杯