Как сделать колонку динамической в ​​нижеприведенном VBA - PullRequest
0 голосов
/ 30 октября 2018
If Worksheets("Data").Range("D5").value = 0 Then
Columns("K").EntireColumn.Hidden = True
Else
Columns("K").EntireColumn.Hidden = False
End If

Сэр, у меня есть код выше, где столбец "K" скрывает / показывает, основываясь на ячейке "D5" другого листа. Но когда я добавляю или удаляю столбец в моем Excel, тогда желаемого столбца нет. перейти к «L» или «J», но столбец «K» статический в VBA и скрыть этот код, который не должен происходить. Как этот столбец "K" автоматически изменяется при удалении или добавлении столбца в excel

Ответы [ 2 ]

0 голосов
/ 30 октября 2018

Я бы посоветовал поместить имя («Именованный диапазон») в верхнюю ячейку столбца, который вы хотите показать / скрыть. Затем вы можете получить доступ к этому названному диапазону в коде.

Предполагается, что вы определили имя "Homeloan" в ячейке K1: запись

Range("HomeLoan").EntireColumn.Hidden = False

Обратите внимание, что вы всегда должны квалифицировать объекты Excel, чтобы было ясно, к какому рабочему листу вы хотите получить доступ, но это не является частью вашего вопроса

0 голосов
/ 30 октября 2018

Если у вас нет проблем, чтобы отобразить все столбцы перед поиском слова «Homeloan», это будет работать, даже если вы удалите или добавите столбцы.

Sub test()

Dim lcol As Long
With Worksheets("Data")
    .Columns("A:AC").EntireColumn.Hidden = False 'Unhide all the columns first

    'This only works if the column with the word homeloan is not hidden.
    lcol = Application.WorksheetFunction.Match("Homeloan", .Range(.Cells(1, 1), .Cells(1, .Cells(1, .Columns.Count).End(xlToLeft).Column)), 0) 'Find last column in row 1. Then create a range to look for the word "Homeloan". Last, return the current column number where Header "Homeloan" exists.
        If .Range("D5").Value = 0 Then
            .Columns(lcol).EntireColumn.Hidden = True
        Else
            .Columns(lcol).EntireColumn.Hidden = False
        End If
End With
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...