当前位置: 首页 > 知识库问答 >
问题:

Excel VBA复制范围从另一个电子表格转置

祁飞扬
2023-03-14

我想从工作簿中复制一个范围,并将其转置到当前工作表中。

工作簿(“库\document\book1.xlsx”)。工作表(“sheet1”)。范围(“A1:A5”)。复制

Sub PasteSpecial_Examples()
'https://stackoverflow.com/questions/8852717/excel-vba-range-copy-transpose-paste
'https://www.excelcampus.com/vba/copy-paste-cells-vba-macros/

    Workbooks("Libraries\Documents\Book1.xlsx").Worksheets("Sheet1").Range("A1:A5").Copy
    ActiveSheet.Range("A1").PasteSpecial Transpose:=True

End Sub

共有1个答案

燕星鹏
2023-03-14

>

  • Excel只允许同时打开一个具有特定文件名的工作簿,即使这些工作簿存在于不同的目录中(它们必须存在,或者它们不能具有相同的文件名)。

    workbooks集合的索引只是文件名,而不是完全限定的路径和名称。

    我不确定第一点是否是第二点的原因,或者第二点是否是第一点的原因,但它们会有关联。

    Sub PasteSpecial_Examples()
        Workbooks("Book1.xlsx").Worksheets("Sheet1").Range("A1:A5").Copy
        ActiveSheet.Range("A1").PasteSpecial Transpose:=True    
    End Sub
    
    Sub PasteSpecial_Examples()
        Dim wsDst As WorkSheet
        Set wsDst = ActiveSheet        
        Workbooks.Open "Libraries\Documents\Book1.xlsx"
        Workbooks("Book1.xlsx").Worksheets("Sheet1").Range("A1:A5").Copy
        wsDst.Range("A1").PasteSpecial Transpose:=True    
    End Sub
    
    Sub PasteSpecial_Examples()
        Dim wbSrc As WorkBook
        Dim wsDst As WorkSheet
        Set wsDst = ActiveSheet        
        Set wbSrc = Workbooks.Open("Libraries\Documents\Book1.xlsx")
        wbSrc.Worksheets("Sheet1").Range("A1:A5").Copy
        wsDst.Range("A1").PasteSpecial Transpose:=True    
    End Sub
    

    它指定工作簿对象引用新打开的工作簿,然后在copy语句中使用该对象。

    注意:在此代码中,“libraries\documents\book1.xlsx”是对文件的相对引用,例如,如果当前目录是C:\temp,那么它将查找文件C:\temp\libraries\documents\book1.xlsx。如果可能,您应该认真考虑使用绝对引用。

  •  类似资料:
    • 我什么都试过了,但还是做不到 我试图使用setValues()将数据从一个电子表格复制到另一个电子表格,因为link对我不起作用。我还需要保持触发器的编辑。 因此,我创建了一个名为AddConvocacao的函数,并且总是在有任何更改时运行脚本。 为什么我在编辑时使用不起作用? 非常感谢!=)

    • 如果某个事件(编辑单元格)发生在工作表的特定范围内(不是所有工作表),我想用OneEdit触发一个触发器吗?示例:我只想在编辑活页_1中名为“trgRng”(C10:C250)范围的单元格时触发。 我编码如下,但它触发所有的工作表,而不仅仅是特定范围的特定工作表 可能吗?怎样

    • B页中有图表,其中有源数据。我想以这样一种方式将图表导入到主电子表格B中,当图表在表格B中更改时,它也应该在主表格A中动态更改。 经过大量的研究,我能够找到以下内容: Importrange-只导入数据,而不是图表 复制图表本身并将其粘贴到主工作表A,但当图表在工作表B中动态变化时,它不会更改。 发布图表并将URL作为图像插入-如果主表A是google电子表格,则不起作用,但适用于google文档

    • 我想将table 1的内容复制到table 2中,但它不是直接复制,因为table 2包含的列比表1多。结构类似于这样: 表 1 { 列 2 列 4 列 6 } 表2{column1 column2 column3 column4 column5 column6} 我想做的是将table1到table2中的每一行相加,并为缺少的列设置默认值。任何帮助都将不胜感激。

    • 我读过谷歌脚本的两个链接:有条件地将行从一个电子表格复制到另一个电子表格,然后https://stackoverflow.com/a/4809413/1526044在尝试之后,我不能做我需要的事情。 我有一个电子表格,其中一张表上有一些数据,另一张表上有列上的关键信息,以这种方式进行比较: 我需要一个函数来逐行检查我的数据电子表格,查找关键表上的列值。当找到任何值时,它会在数据电子表格的第一列(同