创建一个Excel宏,用于搜索标题并复制粘贴列

时间:2008-12-30 10:47:16

标签: excel vba excel-vba

我是Excel宏的新手。我有一些标题分散在许多工作表中的列。我想在某个列中键入一个带有光标的标题,并将带有该标题的列用光标复制粘贴到该列。

是否可以通过录制宏来实现此目的?怎么样?如果没有,我该如何以编程方式进行?

2 个答案:

答案 0 :(得分:1)

以下是有关复制已找到列的代码的一些注释。

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

答案 1 :(得分:0)

标题是否在不同的工作表上出现多次?如果没有,那么我建议使用简单的if语句

if('columnheading'='要检查的列','line1ref','line1refin其他表')

您必须检查每列才能执行此操作。

是否有多张纸,列总是在同一位置?