0

大概是一个简单的问题。我似乎无法找到答案。

我试图使一个字符串等于另一个字符串,但我似乎无法让它工作。没有 VBA 错误。它只是跳过了这一行。我指的是USRInVenName = VenName. 相反,为了完成这项工作,我需要放入Sheets("Log").Range("D4") = VenName. 我宁愿让字符串=字符串。

Sub TGHL()

Dim VenName As String
Dim USRInVenName As String

VenName = Sheets("Log").Range("i4")
USRInVenName = Sheets("Log").Range("D4")

   If VenName <> USRInVenName Then

        Dim VendCopyOver As Integer

        VendCopyOver = MsgBox("Copy over name?", _
                               vbYesNo, "Name Correction")

        If VendCopyOver = vbYes Then
        USRInVenName = VenName

        End If

    Else

    End If

End Sub
4

1 回答 1

2

你的意思是这样的吗?这将使用设置为单元格的 2 个变量,因此它们不包含单元格的值,它们代表单元格。当你写的时候VenName,你实际上是在使用VenName.Value——这就是所谓的默认属性。将一个 Range 变量的值分配给另一个变量时,您是将值直接分配到单元格中。

Sub TGHL()

    Dim VenName As Range
    Dim USRInVenName As Range
    Set VenName = Sheets("Log").Range("i4")
    Set USRInVenName = Sheets("Log").Range("D4")

    If VenName <> USRInVenName Then   ' VenName.Value <> USRInVenName.Value
        If MsgBox("Copy over name?", vbYesNo, "Name Correction") = vbYes Then
            USRInVenName = VenName    ' USRInVenName.Value = VenName.Value
        End If
    End If
End Sub
于 2020-05-05T16:07:51.110 回答