-2

我在 excel 的 2 列中有两个整数值。我需要检索这些整数并形成一个比率,然后将其与另一列中的另一个比率进行比较。

例如,如果 A1 和 B1 列中的数字是 2 和 3。我需要在 C1 中检索这些值并形成 2:3,并且应该比较这是否与 D1 中的相同(值为 4:1)。

我如何在 VBA 中做到这一点?

我在 C1 中创建了一个公式 =A1&":"&B1 并获得了 C1 中的值。但是我无法将它与 D1 中的值进行比较,我不确定如何在 VBA 中声明这个变量?请在这里帮助我。

4

2 回答 2

0

如果 D1 的格式与 C1 相同,则公式=(D1=C1)将返回 TRUE 或 FALSE。在 VBA 中,这可以存储在一个变量中:

Dim blnSame As Boolean
blnSame = (Range("D1").Value = Range("C1").Value)

根据 OP 的进一步评论,Excel 公式将是:

=IF(Sheet1!C1=Sheet2!D1,"Win","Lose")    ' or ,"Lose","Win"

(根据需要调整单元格和工作表引用)可以复制到列中。

在 VBA 中,可以将公式插入到范围中:

Worksheets("Sheet3").Range("E1:E10").Formula = _ 
    "=IF(Sheet1!C1=Sheet2!D1,""Win"",""Lose"")"

如果你想循环插入单词“Win”或“Lose”的列,那么 IMO 你应该学习一些 VBA。

于 2013-06-16T11:10:34.167 回答
0

你可以试试这个..

Private Sub Worksheet_Change(ByVal Target As Range)
Dim y As Integer

y = Target.Row
Select Case Target.Column
  Case 1, 2 ' if col A
    If IsEmpty(Cells(y, 1)) Or IsEmpty(Cells(y, 2)) Then
      Cells(y, 3) = ""
      Exit Sub
    End If

    Cells(y, 3) = "'" & Cells(y, 1) & ":" & Cells(y, 2)

  Case 3 ' then compare
    MsgBox IIf(Cells(y, 3) = Cells(y, 4), "Equal", "Not Equal")

End Select

End Sub

这个使用'符号来避免将值自动转换为时间,为此你应该在 D 列中'也有 ..

于 2013-06-16T14:52:35.763 回答