如何比较VBA中的比率?

时间:2013-06-16 11:03:57

标签: excel vba declaration

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

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

我如何在VBA中执行此操作?

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

2 个答案:

答案 0 :(得分: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。

答案 1 :(得分: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列中加上' ..