【问题标题】:Compare variable to cell in excel vba将变量与excel vba中的单元格进行比较
【发布时间】:2019-09-16 15:23:06
【问题描述】:

我有一个 vba 脚本,我想比较从宏用户窗体接收到的 ItemNumber。但是由于某种原因,如果我使用 ItemNumber 变量,它就不起作用。该数字正在传递,因为如果我告诉它设置对该变量的调用,它确实设置正确。

我有这个 vba 脚本,如果我改变了

   If ItemNumber = myRange.Cells(r, 1).Value Then

声明是

   If "991182" = myRange.Cells(r, 1).Value Then
Sub subtract(Qty, ItemNumber, OptionButton1, OptionButton2, OptionButton3, OptionButton4, OptionButton5, OptionButton6)
    Dim myRange As Range
    Dim r As Double, c As Long
    Dim ws As Worksheet

    ' Change worksheet designations as needed
    Set ws = ActiveWorkbook.Worksheets("On Hands")
    Set myRange = ws.Range("A3:A10")
    For r = 1 To myRange.Rows.Count
        ' For c = 1 To myRange.Columns.Count

        If ItemNumber = myRange.Cells(r, 1).Value Then
            If OptionButton1 = True Then
                myRange.Cells(r, 3).Value = myRange.Cells(r, 3).Value - Qty
                MsgBox "Removed " + Qty + " from your On Hands Sheet Item #: " + ItemNumber
            End If
            If OptionButton2 = True Then
                myRange.Cells(r, 3).Value = myRange.Cells(r, 3).Value - Qty
                MsgBox "Removed " + Qty + "from your On Hands Sheet Item #: " + ItemNumber
            End If
            If OptionButton3 = True Then
                myRange.Cells(r, 3).Value = myRange.Cells(r, 3).Value - Qty
                MsgBox "Removed " + Qty + " from your On Hands Sheet Item #: " + ItemNumber
            End If
            If OptionButton4 = True Then
                myRange.Cells(r, 3).Value = myRange.Cells(r, 3).Value + Qty
                MsgBox "Added " + Qty + " to your On Hands Sheet Item #: " + ItemNumber
            End If
            If OptionButton5 = True Then
                myRange.Cells(r, 3).Value = myRange.Cells(r, 3).Value + Qty
                MsgBox "Added " + Qty + " to your On Hands Sheet Item #: " + ItemNumber
            End If
            If OptionButton6 = True Then
                myRange.Cells(r, 3).Value = myRange.Cells(r, 3).Value + Qty
                MsgBox "Added " + Qty + " to your On Hands Sheet for Item #: " + ItemNumber
                '    myRange.Cells(r, 3) = myRange.Cells(r, 3).Value + Qty

            End If
        End If
        'Next c
    Next r
End Sub

【问题讨论】:

  • ItemNumber 的值如何分配给该变量?
  • @JeremyLarson Debug.print ItemNumber 会返回一些东西吗?
  • 请使用正确的缩进。这刺痛了我的眼睛。您可以使用 RubberDuck VBA 自动缩进。
  • 您的 ItemNumber 可能是一个字符串(或 Long 等,但没有 Variant),标注它
  • 所以试试:如果 Clng(ItemNumber) = ....

标签: excel vba variables compare


【解决方案1】:

如果您将Char 转换为ItemNumber,您可以执行以下操作:

If CStr(ItemNumber) = Cstr(myRange.Cells(r, 1).Value) Then

它将ItemNumber 转换为string 并将单元格值转换为

【讨论】:

  • @JeremyLarson 很高兴我能帮助你
猜你喜欢
  • 2023-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多