Excel根据单元格内容进行更改

时间:2016-05-17 16:01:15

标签: excel vbscript

我正在尝试创建一个脚本,该脚本将应用于SSIS包的Excel脚本,该脚本将根据单元格的内容更改列可见性。

基本上我有一个包含报告名称的列。该报告将包含单词" MID"或"结束",确定它是月中报还是月末报告。现在,我让脚本遍历该列中单元格的内容,并且应该使单元格可见或不可见,但我相信问题是If Else在我整数之前不适用使用是增加的,因此它遍历整个列表,查看它是否是If语句的第一个条件,但不会循环回Else语句的开头。

如果有更好的方法根据一系列单元格中的单元格内容进行更改,请告诉我,因为这将广泛使用。

这是我目前的代码:

'Mid Month/Month End Changes
ReportRange = .Range("B2", "B" & lastrow)
k = 0
For k = 0 To ReportRange.Rows.Count - 1
    ReportCell = .Cells(2 + k, 2)
    Report = ReportCell.Value
    MidHrsCell = ReportCell.Offset(, 5)
    EndHrsCell = ReportCell.Offset(, 6)

    For Each Cell In ReportRange
        If InStr(Report, "MID") > 0 Then
            EndHrsCell.EntireColumn.Hidden = True
        Else 
            MidHrsCell.EntireColumn.Hidden = True
        End If
    Next
Next

1 个答案:

答案 0 :(得分:1)

你已经在你的循环中循环以绕过相同的范围。我已经将它简化为每个下面只有一个循环。

'Mid Month/Month End Changes
ReportRange = .Range("B2", "B" & lastrow)
k = 0
For Each Cell In ReportRange
    Report = Cell.Value
    MidHrsCell = Cell.Offset(, 5)
    EndHrsCell = Cell.Offset(, 6)
    If InStr(Report, "MID") > 0 Then
        EndHrsCell.EntireColumn.Hidden = True
    Else
        MidHrsCell.EntireColumn.Hidden = True
    End If
Next