0

最初の行に特定の文字列が含まれるワークブックがたくさんあります。たとえば、A〜D行に「Dog」、「Cat」、「Squirrel」、「Fish」があるとします。「Dog」と「Squirrel」の値を検索するマクロが必要です。 、列を非表示にしてから、「Cat」と「Fish」の幅を11の値に設定します。

すべてのブックで一貫性がないため、列番号だけを使用することはできません。ご協力いただきありがとうございます。

Sub HideColumn1()
If Range("B4").Value = 0 Then
    Columns("H").EntireColumn.Hidden = True
Else
    Columns("H").EntireColumn.Hidden = False
End If
End Sub
4

2 に答える 2

1

Range( "A1:D1")を目的の範囲またはより動的なものに変更します。

Dim cell As Range
Dim hiddenRng As Range, widthRng As Range

For Each cell In Range("A1:D1")

    If cell = "Dog" Or cell = "Squirrel" Then

        If (hiddenRng Is Nothing) Then
            Set hiddenRng = cell
        Else
            Set hiddenRng = Union(hiddenRng, cell)
        End If

    End If

    If cell = "Cat" Or cell = "Fish" Then

        If (widthRng Is Nothing) Then
            Set widthRng = cell
        Else
            Set widthRng = Union(widthRng, cell)
        End If

    End If

Next cell

If (Not hiddenRng Is Nothing) Then hiddenRng.EntireColumn.Hidden = True
If (Not widthRng Is Nothing) Then widthRng.EntireColumn.ColumnWidth = 11
于 2012-12-10T17:15:33.193 に答える
0

これは別の例です

Sub hideColumns()
Dim iRow, iCol As Integer
iRow = 1
iCol = 1

Dim cat, dog, fish, squirrel As String

cat = "Cat"
dog = "Dog"
fish = "Fish"
squirrel = "Squirrel"

Do While Cells(iRow, iCol).Value <> ""
    If Cells(iRow, iCol).Value = dog Or Cells(iRow, iCol).Value = squirrel Then
        Cells(iRow, iCol).Select
        Selection.EntireColumn.Hidden = True
    ElseIf Cells(iRow, iCol).Value = cat Or Cells(iRow, iCol).Value = fish Then
        Cells(iRow, iCol).EntireColumn.Select
        Selection.ColumnWidth = 11
    Else
        'did not find anything do somthing
    End If

iCol = iCol + 1
Loop
End Sub
于 2012-12-10T17:35:19.047 に答える