VBA隐藏列,如果

VBA隐藏列,如果,vba,excel,Vba,Excel,我希望您能帮助我解决我在Excel VBA中遇到的这个挑战。 我不知道该怎么解释,但我会尽力的 我想“隐藏”两列,如果这两列在单元格“D4”和单元格“E4”中包含相同的文本 列中的文本并不总是相同的。有时在两个“D4”和“E4”中都是fx“TEST”,有时两个单元格中的文本都是“NOTEST”,有时两个单元格中可能只有一个单元格中的文本,这意味着不应隐藏该列 如果解释太弱,请让我知道,我会尝试以不同的方式解释 提前谢谢 试试看: Sub HiddenTreasure() If Range

我希望您能帮助我解决我在Excel VBA中遇到的这个挑战。 我不知道该怎么解释,但我会尽力的

我想“隐藏”两列,如果这两列在单元格“D4”和单元格“E4”中包含相同的文本

列中的文本并不总是相同的。有时在两个“D4”和“E4”中都是fx“TEST”,有时两个单元格中的文本都是“NOTEST”,有时两个单元格中可能只有一个单元格中的文本,这意味着不应隐藏该列

如果解释太弱,请让我知道,我会尝试以不同的方式解释

提前谢谢

试试看:

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

您可以使用以下子组件

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
您可以在第一个案例中选择两个单元格进行检查第二个案例中选择检查,然后选择带有工作表名称的工作表。这将让你毫无问题地改变这一切