[英]Copy Used Range from Sheet1 and paste into Sheet3
我一直在尝试制作一个代码,将UsedRange
从Sheet1
复制并将该范围粘贴到Sheet3
中。
每次运行代码时, UsedRange
都会从第一个空行粘贴到Sheet3
中。
例如: Sheet1
有 5 行(第 1 行将始终为标题),其中包含我将按下运行的数据,代码会将数据复制并粘贴到Sheet3
第 2 Row2
(第 1 行将始终为标题)。
所以现在Sheet3
有数据,直到Row5
我将再次按下运行按钮,然后数据将从Row6
粘贴。
每次按下按钮时,数据将相应地粘贴。 我在网上获得了一个代码并尝试对其进行编辑,但它没有按我的意愿工作。
对你的帮助表示感谢。
代码。
Sub usedrange()
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim source As Range
Dim target As Range
Dim lastColumn As Long
Set ws1 = Worksheets("NewSheet")
Set ws2 = Sheet3
With ws2
lastrow = .Cells(Rows.Count, 1).End(xlUp).Row
If WorksheetFunction.CountA(.Rows(1)) > 0 Then
lastrow = lastrow + 1
End If
End With
Set source = ws1.usedrange.Offset(1)
Set target = ws2.Cells(, lastrow)
source.Copy Destination:=target
Application.CutCopyMode = False
End Sub
Option Explicit
Sub copyUsedRange()
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim Source As Range
Dim Target As Range
Dim LastRow As Long
' Code names
Set ws1 = Sheet1
Set ws2 = Sheet3
' Tab Names
'Set ws1 = ThisWorkbook.Worksheets("Sheet1")
'Set ws2 = ThisWorkbook.Worksheets("Sheet3")
With ws1.UsedRange
Set Source = .Resize(.Rows.Count - 1).Offset(1)
End With
With ws2
Set Target = .Cells(.Rows.Count, 1).End(xlUp).Offset(1)
End With
Source.Copy Target
End Sub
代码是不言自明的
Public Sub CopyUsedRange()
Dim sourceSheet As Worksheet
Set sourceSheet = ThisWorkbook.Worksheets("sourceSheetName")
Dim targetSheet As Worksheet
Set targetSheet = ThisWorkbook.Worksheets("targetSheetName")
Dim sourceRange As Range
Set sourceRange = sourceSheet.UsedRange.Resize(sourceSheet.UsedRange.Rows.Count - 1, sourceSheet.UsedRange.Columns.Count).Offset(1)
Dim targetLastRow As Long
targetLastRow = targetSheet.Cells(targetSheet.Rows.Count, "A").End(xlUp).Row
Dim targetRange As Range
Set targetRange = targetSheet.Range("A" & targetLastRow + 1)
sourceRange.Copy targetRange
End Sub
Sub usedrange()
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim source As Range
Dim target As Range
Dim vDB As Variant
Dim rngDB As Range
Dim r As Long, c As Long
Set ws1 = Worksheets("NewSheet")
Set ws2 = Sheet3
With ws1
r = .Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
c = .Cells.Find("*", SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
Set rngDB = .Range("a1", .Cells(r, c))
End With
Set source = rngDB.Offset(1)
vDB = source
Set target = ws2.Range("a" & Rows.Count).End(xlUp)(2)
target.Resize(UBound(vDB, 1), UBound(vDB, 2)) = vDB
End Sub
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.