【发布时间】:2020-10-20 15:14:16
【问题描述】:
好人,我希望你有一个美好的一天。我是 Excel 宏 VBA 的新手。我需要为特定的数据处理构建 Excel 启用宏的工作簿。
背景:我正在尝试将数据作为值从“源”工作簿中的每个工作表复制到我的主工作簿中的表中,然后当每个工作表上的每个数据都被复制时,我需要从我的主工作簿中的该表中删除重复项。
问题:“源”工作簿中的工作表数量不确定。
目标:从“源”工作簿中的每个工作表复制,堆叠在我的主工作簿中,然后删除我的主工作簿中的重复项。
我为单页“源”工作簿提供了一组代码,请帮助我实现目标。我尝试使用 do while 循环,直到循环,但他们未能执行我的代码
Sub Copy_SourceToMaster()
Dim FileToOpen As Variant
Dim OpenBook As Workbook
Application.ScreenUpdating = False
FileToOpen = Application.GetOpenFilename(Title:="Browse for your File & Import Range")
If FileToOpen <> False Then
Set OpenBook = Application.Workbooks.Open(FileToOpen)
OpenBook.Sheets(1).Activate
Range("C6").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.Copy
ThisWorkbook.Activate
ActiveSheet.Range("B4").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
OpenBook.Close False
End If
Application.ScreenUpdating = True
Dim sht As Worksheet
Dim LastRow As Long
Dim LastColumn As Long
Dim StartCell As Range
Set sht = ActiveSheet
Set StartCell = Range("B5")
'Find Last Row and Column
LastRow = sht.Cells(sht.Rows.Count, StartCell.Column).End(xlUp).Row
LastColumn = sht.Cells(StartCell.Row, sht.Columns.Count).End(xlToLeft).Column
'Select Range
sht.Range(StartCell, sht.Cells(LastRow, LastColumn)).Select
Selection.RemoveDuplicates Columns:=2, Header:= _
xlYes
Range("B5").Select
Selection.End(xlDown).Select
End Sub
【问题讨论】:
标签: excel vba loops if-statement copy-paste