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