首页 文章

使用列中的给定值复制和粘贴所有行

提问于
浏览
0

我一直在尝试在Excel数据库中创建一个主工作表,允许我在单元格中输入参考编号,然后运行宏来列出参考编号的所有实例 .

例如,如果我在单元格E8中输入参考编号0001,我可以单击命令按钮,该按钮将查找相邻工作表中出现0001的所有实例,然后复制并粘贴范围内相关的所有行 .

这是我目前的代码,但是,没有复制和粘贴 . 它将清除B35:B100的内容并在最后选择单元格E8,但两者之间似乎没有任何内容发生 .

任何想法为什么复制和粘贴不起作用?

Option Explicit
Sub ReturnActions()

Dim itemnumber As String
Dim finalrow As Integer
Dim i As Integer

Sheet1.Range("B35:N100").ClearContents

itemnumber = Sheet1.Range("E8").Value 'master worksheet
finalrow = Sheet3.Range("G10").End(xlUp).Row 'database of information

For i = 2 To finalrow
    If Cells(i, 1) = itemnumber Then
        Sheet3.Range(Cells(i, 2), Cells(i, 12)).Copy 'database worksheet
        Sheet1.Range("B50").End(xlUp).Offset(1, 0).PasteSpecial xlPasteFormulasAndNumberFormats 'master worksheet
        End If
Next i

Range("E8").Select 'master wowrksheet

End Sub

2 回答

  • 0

    我发现了我出错的地方 . 我忘了在两张纸之间激活 . 有效的重新格式化代码是:

    Option Explicit
    Sub ReturnActions()
    
    Dim itemnumber As String
    Dim finalrow As Integer
    Dim i As Integer
    
    Sheet1.Range("B35:N100").ClearContents
    
    itemnumber = Sheet1.Range("E8").Value
    finalrow = Sheet3.Range("G10").End(xlUp).Row
    
    Worksheets("Total List").Activate
    For i = 2 To finalrow
        If Cells(i, 7) = itemnumber Then
            Sheet3.Range(Cells(i, 7), Cells(i, 12)).Copy
            Sheet1.Range("B50").End(xlUp).Offset(1, 0).PasteSpecial xlPasteFormulasAndNumberFormats
            End If
    Next i
    
    Worksheets("Action Entry").Activate
    
    Range("E8").Select
    
    
    End Sub
    
  • 0

    使用AutoFilter并粘贴“可见”单元格会更容易

    ' Assumes data starts in cell A1 on each sheet
    Sheet3.range("A1").Autofilter Criteria1:= Sheet1.Range("E8").Value
    Sheet3.range("A1").currentregion.select
    Selection.SpecialCells(xlCellTypeVisible).Select
    Selection.Copy
    Sheet1.Activate
    Sheet1.Range("A1").Select
    Sheet1.Paste
    

相关问题