VBA代码在我逐步执行时会起作用,但在运行时不会起作用

时间:2020-02-12 13:52:48

标签: excel vba

我有一些基本的VBA,它允许用户从一个表中获取一个字段并使用它来更新另一个表。当我逐步执行它时,它工作正常,但是当我使用F5运行它时,没有任何反应。我没有任何错误,什么也没发生。

我认为可能是在下一步发生之前尚未将值分配给其中一个变量,但是我之前从未遇到过此问题,并且我一直认为VBA不会转移到下一步,直到完成所要执行的操作?

我的代码如下:

    Option Explicit

Sub acceptDateComp()

    'set data type
    Dim dtType As String
    dtType = "opportunity"

    'declare sheets
    Dim wsComp As Worksheet
    Set wsComp = ThisWorkbook.Sheets(dtType & "Comp")
    Dim wsBCE  As Worksheet
    Set wsBCE = ThisWorkbook.Sheets(dtType & "Snapshot")
    Dim wsOffline As Worksheet
    Set wsOffline = ThisWorkbook.Sheets(dtType & "Database")

    'declare tables
    Dim bce As ListObject
    Set bce = wsBCE.ListObjects(dtType & "Snapshot")
    Dim offline As ListObject
    Set offline = wsOffline.ListObjects(dtType & "Database")
    Dim dateComp As ListObject
    Set dateComp = wsComp.ListObjects(dtType & "DateComp")

    'declare heights and areas
    Dim offlineRange As Range
    Set offlineRange = offline.ListColumns(1).DataBodyRange

    'check for acceptance, then change values
    Dim i As Long
    Dim dateID As Long
    Dim offlineRow As Long
    Dim bceDate As String

    For i = 2 To dateComp.ListRows.Count + 1
        If dateComp.ListColumns(6).Range(i).Value = "Yes" Then
            dateID = dateComp.ListColumns(1).Range(i).Value
            offlineRow = Application.WorksheetFunction.Match(dateID, offlineRange, 0)
            bceDate = dateComp.ListRows(i - 1).Range(5).Value
            offline.ListRows(offlineRow).Range(12).Value = bceDate
        End If
    Next i

    Call opportunityComp

End Sub

0 个答案:

没有答案