运行VB代码的Excel工作表在打开新工作簿时出现错误

时间:2019-02-25 15:41:29

标签: excel vba

我有一个带有开始和停止按钮的Excel工作表。如果单击“开始”按钮,它将开始从名为“价格”的工作表中获取值,直到单击“停止”按钮为止。它运作完美。 但是,当我打开一个新的空白excel工作表时,出现错误“下标超出范围”。我的问题是,如果我按开始按钮,那么excel首先应在后台运行,并且我应该能够打开任何数量的其他工作簿。

我在下面的代码中给出了错误的出处。

Sub StartDataUpdate()
    TimerActive = True
    UpdateData
End Sub

Private Sub UpdateData()
    If TimerActive Then

        ConnectDB

        Set rs1 = New ADODB.Recordset
        Dim LocalTime As String
        LocalTime = Format(Now(), "YYYY/MM/DD HH:MM:SS")

        With Sheets("Price")
            For rowCursor = 2 To 10
                 //Code to insert data in database
            Next

        End With

        Set rs1.ActiveConnection = Nothing
        oConn.Close
        RepeatUpdate
    End If
End Sub

当我打开一个新的空白excel工作表时,错误出现在With Sheets("Price")行,为下标超出范围

1 个答案:

答案 0 :(得分:2)

Sheets("Price")并不总是设置为宏的工作簿。请尝试ThisWorkbook.Sheets("Price"),在这种情况下,它只会查看宏所在的工作簿。