如果

时间:2017-10-03 16:04:37

标签: vba excel-vba excel

我希望你能帮我解决我在Excel VBA中遇到的这个挑战。 我不确定如何解释这一点,但我会尽我所能。

我想"隐藏"两列如果,两列在两个单元格中包含相同的文本" D4"和细胞" E4"。

列中的文字并不总是相同。有时它是fx" TEST"在他们两个" D4" &安培; " E4",有时文字是" NOTEST"在两个单元格中,有时候它们可能只有两个单元格中的一个文本,这意味着该列不应该被隐藏。

如果解释是弱的,请告诉我,我会尝试以不同的方式解释。

提前致谢!

2 个答案:

答案 0 :(得分:2)

尝试一下:

Sub HiddenTreasure()
    If Range("D4") = Range("E4") Then
        Range("C:D").EntireColumn.Hidden = True
    Else
        Range("C:D").EntireColumn.Hidden = False
    End If
End Sub

答案 1 :(得分:1)

您可以使用以下子。

Sub ShowColumns()
Dim firstCaseToCheck As String
Dim secondCaseToCheck As String
Dim nameOfYourSheet As String

firstCaseToCheck = "D4"
secondCaseToCheck = "E4"
nameOfYourSheet = "Name Of Your Sheet"

With ThisWorkbook.Sheets(nameOfYourSheet)
    If (.range(firstCaseToCheck) = .range(secondCaseToCheck)) Then
        .range(Split(Cells(1, .range(firstCaseToCheck).Column).Address(True, False), "$")(0) & ":" & _
                Split(Cells(1, .range(secondCaseToCheck).Column).Address(True, False), "$")(0)).EntireColumn.Hidden = True
    Else
        .range(Split(Cells(1, .range(firstCaseToCheck).Column).Address(True, False), "$")(0) & ":" & _
                Split(Cells(1, .range(secondCaseToCheck).Column).Address(True, False), "$")(0)).EntireColumn.Hidden = False
    End If
End With
End Sub

您可以在 firstCaseToCheck secondCaseToCheck 中选择两个单元格,然后选择包含 nameOfYourSheet 的工作表。这样你就可以毫无问题地改变这一切。