簡體   English   中英

Excel - 使用 VB 在工作簿之間復制粘貼(轉置)

[英]Excel - Copy-paste (transpose) between workbooks using VB

我正在嘗試復制一系列單元格的值,然后使用 VBA 將其粘貼到不同的工作簿上。 但是,該代碼僅粘貼第一個復制的單元格,而將范圍的其余部分留空。 我無法識別我的錯誤。

這是代碼:

Sub Data()
Dim wbk As Workbook`
Dim wks As Worksheet`
carp = ThisWorkbook.Path & "\Bases de datos\"
a = "Cuadros_de_salida_IMAE.xls"
Application.EnableEvents = False
Set wbk = Workbooks.Open(carp & a)
Set wks = wbk.Worksheets("Activ")
Application.EnableEvents = True
wks.Rows.Hidden = False


b = "D"
c0 = 9
c1 = 25
E = "IMAE"
f0 = "G"
f1 = "W"
g = 6
iniRow = c0
finRow = c1
wks.Range(b & iniRow & ":" & b & finRow).End(xlToRight).Copy
ThisWorkbook.Worksheets(E).Range(f0 & g).PasteSpecial  Paste:=xlPasteValues, Operation:=xlNone, Transpose:=True

Windows(a).Activate
Application.DisplayAlerts = False
ActiveWorkbook.Close
Application.DisplayAlerts = True

謝謝。 我真的很感謝一些幫助。

我花了一段時間來回補您擁有的代碼......似乎有很多不必要的變量/引用。

Dim LR as Long
LR = Cells(wks.Rows.Count, 1).End(xlUp).Row 

Dim LC as Long
LC = Cells(wks.Columns.Count, 1).End(xlToLeft).Column

wks.RANGE(Cells(9,7),Cells(LR,LC)).Copy

Worksheets(E).Range(Cells(6,7),Cells(LR-3,LC)).PasteSpecial  Paste:=xlPasteValues, Operation:=xlNone, Transpose:=True   'LR-3 because G9 and G6 row difference

這對你來說應該是一個不錯的開始。

可能有更好的方法來做到這一點,但問題在於wks.Range(b & iniRow & ":" & b & finRow).End(xlToRight).Copy語句。 如果您將其更改為:

wks.Range(b & iniRow & ":" & b & finRow).Select
Range(Selection, Selection.End(xlToRight).Copy

您的代碼應該可以工作。 如有疑問,請使用宏記錄器:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM