使用VBA将特定的列从工作簿复制到另一个

卢卡斯·穆里略(Lucas Murillo)

我需要编写宏的帮助,该宏将根据用户输入数据从一个工作簿复制并粘贴到新工作簿也就是说,宏应执行以下三项操作:

  1. 允许用户选择包含要复制到新工作簿中的数据的工作簿。

  2. 提示用户选择要复制到新工作簿中的数据列,最好仅使用列标题。

  3. 提示用户保存文件。

下面的代码允许用户选择工作簿并将打开的工作簿中的数据范围放入用户窗体,但是我不知道如何将所选内容从该用户窗体复制到新的工作簿中该代码还以行显示工作簿中的数据,但是我只想要列标题的列表

注意: “ multiColumnRange”是数据范围的定义名称,但这是“硬编码的”,我希望它是动态的。即,数据范围将根据工作簿而变化。

Sub Select_Workbook()

'Disables screen updating
Application.ScreenUpdating = False

'Defines the variable to hold the value of the file to open
Dim FileToOpen As Variant
'Defines the variable of the location of the file and the new workbook
Dim OpenBook As Workbook, NewBook As Workbook
     
Dim strCol As String

'Defines variable to hold value of table range
Dim rngMultiColumn As Range

 'Sets the variable to the file that is selected
FileToOpen = Application.GetOpenFilename(Title:="Browse for your File & Import Range", FileFilter:="Excel Files (*.xls*),*xls*")
'Checks if the user selected cancel and stores the Boolean value and not string
    If FileToOpen <> False Then
    Set OpenBook = Workbooks.Open(FileToOpen)
    
    'Define source range, referring to table's data range
    Set rngMultiColumn = OpenBook.Worksheets("Export").Range("multiColumnRange")
    
    With ufrmListBoxMultiColumn.lboxExampleMC
        .ColumnWidths = "120;120;120"
        .List = rngMultiColumn.Cells.Value
    End With
    
    ufrmListBoxMultiColumn.Show
    
    'Creates new workbook and assigns it to variable NewBook
    Set NewBook = Workbooks.Add

    End sub
气体

试试吧

Sub move_data()

Dim data_wb As Workbook
Dim target_wb As Workbook
Dim file_name As Variant
Dim header_range(100) As Range
Dim last_row As Long
Dim col_number As Long
Dim col_letter As String
Dim counter As Long
Dim quantity As Long

'select workbook
file_name = Application.GetOpenFilename(Title:="Choose a target Workbook")

If file_name <> False Then

    'create a new target workbook
    Set target_wb = Application.Workbooks.Add

    'open Workbook with the data
    Set data_wb = Application.Workbooks.Open(file_name)
    
    'get quantity to create loop
    quantity = _
    InputBox("How many columns do you want to copy?")
    
    'loop
    For counter = 1 To quantity
    
        'select header range
        Set header_range(counter) = _
        Application.InputBox("Select the HEADER of the " & counter & "º column you want to copy", Type:=8)
        
        'get last row and col letter
        col_number = header_range(counter).Column
        last_row = Cells(Rows.Count, col_number).End(xlUp).Row
        col_letter = Split(Cells(1, col_number).Address(True, False), "$")(0)

        'copy from data_wb
        Range(header_range(counter), Range(col_letter & last_row)).Copy
        
        'pastein target_wb
        target_wb.Sheets("Sheet1").Cells(1, counter).PasteSpecial
        
    Next counter
    
    data_wb.Close
    
    If Not target_wb.Saved Then
        If MsgBox("Do you want to save the file?", vbYesNo, "Save?") = vbYes Then
            target_wb.Save
        End If
    End If

End If

target_wb.Close

End Sub

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用 VBA 将工作表复制到另一个工作簿

来自分类Dev

将工作表复制到另一个工作簿VBA

来自分类Dev

将列从一个工作簿复制到另一个工作簿

来自分类Dev

通过 VBA 将工作簿的命名范围数据复制到另一个工作簿

来自分类Dev

将数据从一个工作簿复制到另一个工作簿工作表

来自分类Dev

VBA 将 2 列基于 1 的值从一个工作簿复制到另一个

来自分类Dev

将VBA代码从一个工作簿中的工作表复制到另一个工作簿?

来自分类Dev

没有宏将特定工作表从一个工作簿复制到另一个工作簿

来自分类Dev

将工作表复制到另一个工作簿

来自分类Dev

无法将工作表复制到另一个工作簿

来自分类Dev

复制到另一个工作簿时,VBA脚本将公式转换为值

来自分类Dev

当将模块复制到另一个工作簿时,VBA会插入额外的括号

来自分类Dev

将数据复制到另一个工作簿时,VBA Excel没有响应

来自分类Dev

VBA Excel-带条件将行复制到另一个工作簿表

来自分类Dev

VBA将单元格范围复制到另一个工作簿上的范围

来自分类Dev

使用 vba 提取工作簿的第一个字符并复制到另一个工作簿

来自分类Dev

Excel VBA:使用R1C1公式将范围内的值复制到另一个工作簿

来自分类Dev

Excel VBA:使用R1C1公式将范围内的值复制到另一个工作簿

来自分类Dev

将数据从许多Excel工作簿复制到另一个Excel工作簿

来自分类Dev

将复选框从另一个工作簿复制到当前工作簿?

来自分类Dev

将工作簿名称复制到另一个工作簿中的单元格

来自分类Dev

将宏和模块从一个工作簿复制到另一个工作簿,并使所有VBA工作在一个主工作簿中

来自分类Dev

如何使用aspose.cell将一个工作表复制到工作簿中的另一个工作表

来自分类Dev

将活动工作表复制到另一个工作簿:Range类的复制方法失败

来自分类Dev

将数据从一个工作簿复制到另一工作簿

来自分类Dev

如何使用c#将特定范围内的单元格从一个excel工作簿复制到另一个工作簿

来自分类Dev

将数据从一个 Excel 工作簿复制到另一个同时保留格式

来自分类Dev

将单元格范围从一个工作簿工作表复制到另一个工作簿工作表

来自分类Dev

将一个工作簿的多个工作表中的单元格复制到另一个工作簿中的多个工作表中

Related 相关文章

  1. 1

    使用 VBA 将工作表复制到另一个工作簿

  2. 2

    将工作表复制到另一个工作簿VBA

  3. 3

    将列从一个工作簿复制到另一个工作簿

  4. 4

    通过 VBA 将工作簿的命名范围数据复制到另一个工作簿

  5. 5

    将数据从一个工作簿复制到另一个工作簿工作表

  6. 6

    VBA 将 2 列基于 1 的值从一个工作簿复制到另一个

  7. 7

    将VBA代码从一个工作簿中的工作表复制到另一个工作簿?

  8. 8

    没有宏将特定工作表从一个工作簿复制到另一个工作簿

  9. 9

    将工作表复制到另一个工作簿

  10. 10

    无法将工作表复制到另一个工作簿

  11. 11

    复制到另一个工作簿时,VBA脚本将公式转换为值

  12. 12

    当将模块复制到另一个工作簿时,VBA会插入额外的括号

  13. 13

    将数据复制到另一个工作簿时,VBA Excel没有响应

  14. 14

    VBA Excel-带条件将行复制到另一个工作簿表

  15. 15

    VBA将单元格范围复制到另一个工作簿上的范围

  16. 16

    使用 vba 提取工作簿的第一个字符并复制到另一个工作簿

  17. 17

    Excel VBA:使用R1C1公式将范围内的值复制到另一个工作簿

  18. 18

    Excel VBA:使用R1C1公式将范围内的值复制到另一个工作簿

  19. 19

    将数据从许多Excel工作簿复制到另一个Excel工作簿

  20. 20

    将复选框从另一个工作簿复制到当前工作簿?

  21. 21

    将工作簿名称复制到另一个工作簿中的单元格

  22. 22

    将宏和模块从一个工作簿复制到另一个工作簿,并使所有VBA工作在一个主工作簿中

  23. 23

    如何使用aspose.cell将一个工作表复制到工作簿中的另一个工作表

  24. 24

    将活动工作表复制到另一个工作簿:Range类的复制方法失败

  25. 25

    将数据从一个工作簿复制到另一工作簿

  26. 26

    如何使用c#将特定范围内的单元格从一个excel工作簿复制到另一个工作簿

  27. 27

    将数据从一个 Excel 工作簿复制到另一个同时保留格式

  28. 28

    将单元格范围从一个工作簿工作表复制到另一个工作簿工作表

  29. 29

    将一个工作簿的多个工作表中的单元格复制到另一个工作簿中的多个工作表中

热门标签

归档