Создайте макрос Excel, который ищет заголовок и скопируйте и вставьте столбец - PullRequest
0 голосов
/ 30 декабря 2008

Я новичок в макросах Excel. У меня есть несколько столбцов с заголовками, разбросанными по многим листам. Я хотел бы напечатать заголовок в некотором столбце, который имеет курсор и столбец с этим заголовком скопирован в столбец с курсором.

Возможно ли это сделать путем записи макроса? Как? Если нет, то как мне сделать это программно?

Ответы [ 2 ]

1 голос
/ 31 декабря 2008

Вот несколько примечаний к коду для копирования найденного столбца.

Dim ws As Worksheet
Dim r As Range
Dim CopyTo As String

'You must run the code from a suitable active cell '
strFind = ActiveCell.Value
'Assumes the column data will be written into the next row down '
CopyTo = ActiveCell.Offset(1, 0).Address

'Look at each worksheet'
For Each ws In ActiveWorkbook.Worksheets
    'Skip the active worksheet '
    If ws.Name <> ActiveSheet.Name Then
        'Get the last cell and row'
        lc = ws.Cells.SpecialCells(xlCellTypeLastCell).Column
        lr = ws.Cells.SpecialCells(xlCellTypeLastCell).Row

        'Use the first row for search range '
        Set r = ws.Range(ws.Cells(1, 1), ws.Cells(1, lc))

        'Find the first whole cell to match the active cell '
        Set f = r.Find(strFind, , , xlWhole)
        'If it is found ... '
        If Not f Is Nothing Then
           'Copy the whole column to the copy position '
           ws.Range(ws.Cells(2, f.Column), _
           ws.Cells(lr, f.Column)).Copy (ActiveSheet.Range(CopyTo))
        End If
    End If
Next
0 голосов
/ 30 декабря 2008

Заголовок появляется много раз на разных листах? Если нет, то я бы предложил использовать простое выражение if

if ('columnheading' = 'столбец для проверки', 'line1ref', 'line1refin другой лист')

Для этого вам нужно будет проверить каждый столбец.

Много ли листов, столбцы всегда в одинаковом положении?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...