【问题标题】:Excel - Copy-paste (transpose) between workbooks using VBExcel - 使用 VB 在工作簿之间复制粘贴(转置)
【发布时间】:2017-01-12 19:30:40
【问题描述】:

我正在尝试复制一系列单元格的值,然后使用 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

谢谢。非常感谢一些帮助。

【问题讨论】:

    标签: vba excel copy-paste


    【解决方案1】:

    我花了一些时间来备份你的代码...似乎有很多不必要的变量/引用。

    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
    

    这对你来说应该是一个不错的开始。

    【讨论】:

    • 我通常可以只选择粘贴位置的起始单元格 (G6),excel/vba 将定义范围。我从 G6 编码到范围结束(动态)。
    • 谢谢西里尔,你的建议真的很有帮助。
    • 这是否回答了您的问题,@AlvaroLopezE。 ?
    【解决方案2】:

    可能有更好的方法来做到这一点,但问题在于wks.Range(b & iniRow & ":" & b & finRow).End(xlToRight).Copy 语句。如果您将其更改为:

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

    您的代码应该可以工作。如有疑问,请使用宏记录器 :)

    【讨论】:

    • 他使用 wks.Range("G6:G25").End(xlToRight).Copy 作为他的行(跟随他的变量)。您不想避免选择并加快该过程吗?你知道最后一行,但最后一列是唯一的任务参数,因此是 xlToRight。
    • 感谢您的回复。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-25
    • 1970-01-01
    • 2013-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多