首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VBA从包含"Hawk“名称的多个工作表中复制特定行,并粘贴到新工作表中。

VBA从包含"Hawk“名称的多个工作表中复制特定行,并粘贴到新工作表中。
EN

Stack Overflow用户
提问于 2020-09-10 22:29:33
回答 1查看 225关注 0票数 0

我有一个包含多个电子表格的工作簿。其中一些电子表格在其名称中包含了“鹰”一词。例如"12345 -鹰“和"ABCDE”。我需要从第38行开始复制数据到Hawk工作表包含的行数,并将其粘贴到一个新的电子表格中。

我从另一个线程获得了这段代码,但它只是粘贴了包含单词"Hawk“的最后一个工作表中的行。我需要它粘贴从的每一个页,其中包含“鹰”的名字,而不仅仅是最后一个。

我在VBA方面没有任何经验,所以我不知道出了什么问题。如有任何建议,将不胜感激。

代码语言:javascript
复制
Option Explicit

Sub compile()

  SelectSheets "Hawk", ThisWorkbook
 'Some other bits and pieces here

End Sub


Sub SelectSheets(sht As String, Optional wbk As Workbook)

Dim wks As Worksheet
Dim ArrWks() As String
Dim i As Long

If wbk Is Nothing Then Set wbk = ActiveWorkbook

ReDim ArrWks(0 To Worksheets.Count - 1)

For Each wks In Worksheets

    If InStr(1, wks.Name, sht) > 0 Then
        ArrWks(i) = wks.Name
        i = i + 1
    End If

Next wks

ReDim Preserve ArrWks(i - 1)

Dim ws As Long

For ws = LBound(ArrWks) To UBound(ArrWks)

    Worksheets(ArrWks(ws)).Range("A37:AC100").Copy
    Worksheets("VBA").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial (xlPasteValues)

Next ws

Application.CutCopyMode = False
Application.ScreenUpdating = True

End Sub
EN

回答 1

Stack Overflow用户

发布于 2020-09-13 08:58:57

代码语言:javascript
复制
Public Sub compile()
Dim sh As Worksheet, lastrow As Long, lastcol As Long, i As Long
i = 1   'For paste data in first row in MasterSheet.
Sheets("MasterSheet").Cells.ClearContents   'Clear previous data.
For Each sh In ThisWorkbook.Worksheets
    If InStr(1, UCase(sh.Name), UCase("HAWK")) > 0 Then
        'IF your data is inconsistent then use find function to find lastrow an lastcol.
        lastrow = sh.Cells(Rows.Count, 1).End(xlUp).Row
        lastcol = sh.Cells(38, Columns.Count).End(xlToLeft).Column
        'Here we collect data in master sheet.
        Sheets("MasterSheet").Range("A" & i).Resize(lastrow - 38 + 1, lastcol).Value = sh.Range("A38", sh.Cells(lastrow, lastcol)).Value
        i = i + lastrow - 38 + 1
    End If
Next sh
End Sub

使用这个而不是您的code..It将收集从"A38“范围到最后一行和列的所有数据,并粘贴到mastersheet..Check中,并让我知道它是否有效。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63838466

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档