【发布时间】:2020-10-05 20:50:22
【问题描述】:
我正在尝试编写一个宏来从一组单元格中复制数据并将其粘贴到新的工作表中。
我想停止选择 A 列中最后一个单元格等于“HOURS TOTAL”的位置,这将根据 A9 和“HOURS TOTAL”所在的最后一行/单元格之间的数据进行动态选择。我尝试了四种不同的方法,但都没有产生正确的结果。
Sub Copy_Data()
'
'Copy_Data Macro
'
'
Dim lastCell As String
Sheets("OPSEQB").Select
Range("A9", Range("P9").End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Sheets.Add After:=ActiveSheet
Range("A1").Select
ActiveSheet.Paste
End Sub
Sub Copy_Data2()
Dim copyRange As String
Startrow = A9
LastRow = 11
Let copyRange = "A" & Startrow & ":" & "D" & LastRow
Range(copyRange).Select
End Sub
Sub Copy_Data3()
'
'Copy_Data Macro
'
'
Dim LastRow As String
LastRow = Range.SpecialCells(xlCellTypeLastCell, "HOURS TOTAL").Row
Sheets("OPSEQB").Select
Range("A9", Range("P9").End(xlToRight)).Select
Range(Selection, Selection.End(LastRow)).Select
Selection.Copy
Sheets.Add After:=ActiveSheet
Range("A1").Select
ActiveSheet.Paste
End Sub
Sub Copy_Data4()
'Best used when you want to include all data stored on the spreadsheet
Dim sht As Worksheet
Dim LastRow As Long
Dim LastColumn As Long
Dim StartCell As Range
Set sht = Worksheets("OPSEQB")
Set StartCell = Range("A9")
'Refresh UsedRange
Worksheets("OPSEQB").UsedRange
'Find Last Row and Column
LastRow = StartCell.SpecialCells(xlCellTypeLastCell, "HOURS TOTAL").Row
LastColumn = StartCell.SpecialCells(xlCellTypeLastCell).Column
'Select and copy Range
sht.Range(StartCell, sht.Cells(LastRow, LastColumn)).Select
Selection.Copy
'Add a sheet and paste the range
Sheets.Add After:=ActiveSheet
Range("A1").Select
ActiveSheet.Paste
End Sub
【问题讨论】: