[英]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.