[英]VBA Copying Cell Range To Range on Another Workbook
Sub foo2()
Dim x As Workbook
Dim y As Workbook
'## Open both workbooks first:
Set x = Workbooks.Open("pathoffile.xlsx")
Set y = Workbooks.Open("pathoffile.xlsm")
'Now, transfer values from x to y:
y.Sheets("Main").Range("AH5:AH994").Value = x.Sheets("Database").Range("B2:B991")
'Close x:
x.Close
End Sub
我的代碼如下。 我正在嘗試從一個工作簿中復制一系列數據並將其放在另一個工作簿上。 我無法在一系列數據上工作。 例如,如果我為工作表 y 提供范圍 AH5:AH994,並為工作表 x 提供單個范圍 B2,它將運行並使用來自 B2 的數據填充該范圍。 鑒於它們的大小相同,是否可以獲取整個范圍 B2:B991 並將其復制到 AH5:AH994?
x.Sheets("Database").Range("B2:B991").Copy Destination:=y.Sheets("Main").Range("AH5:AH994")
或者如果您只想要值:
x.Sheets("Database").Range("B2:B991").Copy
y.Sheets("Main").Range("AH5:AH994").PasteSpecial(xlPasteValues)
但價值轉移應該有效並避免剪貼板:
y.Sheets("Main").Range("AH5:AH994").Value = x.Sheets("Database").Range("B2:B991").Value
設置
B
列中的源數據,從第二行(單元格B2
)開始。 行數將在運行時計算。AH5
開始的列范圍。結果
計算后,例如sRng = .Range("B2:B5")
, tCell = .Range("AH5")
可以像這樣復制值:
tCell.Resize(sRng.Rows.Count).Value = sRng.Value
編碼
Option Explicit
Sub ValuesFromRangeToFirstCell()
Const sFirstCell As String = "B2"
Const tFirstCell As String = "AH5"
Dim src As Workbook
Set src = Workbooks.Open("pathoffile.xlsx")
With src.Sheets("Database")
' Define Source Column Number.
Dim sColumn As Long
sColumn = .Range(sFirstCell).Column
' Define Source Last Row Number.
Dim sLastRow As Long
sLastRow = .Cells(.Rows.Count, sColumn).End(xlUp).Row
' Define Source Column Range.
Dim sRng As Range
Set sRng = .Range(sFirstCell, .Cells(sLastRow, sColumn))
End With
Dim tgt As Workbook
Set tgt = Workbooks.Open("pathoffile.xlsm")
With tgt.Sheets("Main")
' Define Target First Cell Range.
Dim tCell As Range
Set tCell = .Range(tFirstCell)
End With
' Copy values from Source Column Range to Target Column Range.
tCell.Resize(sRng.Rows.Count).Value = sRng.Value
src.Close
End Sub
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.