【问题标题】:Excel Vba to copy a range of data in columns to another sheetExcel Vba将列中的一系列数据复制到另一个工作表
【发布时间】:2016-04-06 16:13:15
【问题描述】:

我试图在不打开第二个工作簿的情况下将多个列中的一组数据从一个工作簿的一个工作表复制到另一个工作簿的工作表。

workbook 1
sheet1

Column A      Column B      Column C        Column D     Column E     etc...
index         item No       Details         Price        Cust_nam
002           23101         book            15           ahmed
003           23102         CD              5            ahmed
004           23103         DVD             6            ahmed

第二个工作簿中的 sheet1 也具有相同的列名和配置。

我想要实现的是我在 workbook1 中输入的内容复制到 workbook2。从下一个可用的空白行开始。

这是我的代码

Private Sub CommandButton1_Click()
    LR = Range("A399").End(xlUp).Row
    LR1 = Range("B399").End(xlUp).Row
    LR2 = Range("C399").End(xlUp).Row
    LR3 = Range("D399").End(xlUp).Row
    LR4 = Range("E399").End(xlUp).Row
    LR5 = Range("F399").End(xlUp).Row
    LR6 = Range("G399").End(xlUp).Row
    LR7 = Range("H399").End(xlUp).Row

    Dim itemIndex As Range
    Dim itemNumber As Range
    Dim itemDetails As Range
    Dim itemPrice As Range
    Dim itemCust_nam As Range
    Dim itemMobile As Range
    Dim itemDate As Range
    Dim itemTime As Range
    Dim myData As Workbook

Worksheets("Sheet1").Select
    itemIndex = Range("A8:A & LR")
    itemNumber = Range("B8:B" & LR1)
    itemDetails = Range("C8:C" & LR2)
    itemPrice = Range("D8:D" & LR3)
    itemCust_nam = Range("E8:E" & LR4)
    itemMobile = Range("F8:F" & LR5)
    itemDate = Range("G8:G" & LR6)
    itemTime = Range("H8:H" & LR7)


Set myData = Workbook

myData.SaveAs Filename:="C:\Users\athif\Desktop\Test_Pos\DataBase.xlsx", FileFormat:=51
    Worksheets("Sales").Select
    Worksheets("Sales").Range("A2").Select
    RowCount = Worksheets("Sales").Range("A2").CurrentRegion.Rows.Count
    With Worksheets("Sales").Range("A2")
    .Offset(RowCount, 0) = itemIndex
    .Offset(RowCount, 1) = itemNumber
    .Offset(RowCount, 2) = itemDetails
    .Offset(RowCount, 3) = itemPrice
    .Offset(RowCount, 4) = itemCust_nam
    .Offset(RowCount, 5) = itemMobile
    .Offset(RowCount, 6) = ItemData
    .Offset(RowCount, 7) = itemTime
    End With

    myData.Save
    End Sub

当我单击按钮时,它会给出运行时错误。运行时错误“1004”:对象“_worksheet”的方法“范围”失败。和调试突出显示“ itemIndex = Range("A8:A & LR") ”。

希望尽快解决。

【问题讨论】:

  • 在不打开另一个工作簿的情况下将一组列从一个工作簿复制到另一个工作簿?

标签: vba excel


【解决方案1】:

尝试为所有范围设置它:

set itemIndex = Range("A8:A & LR")

【讨论】:

    【解决方案2】:

    假设 LR 是一个数字,而不是

    itemIndex = Range("A8:A & LR")
    

    应该是

    itemIndex = Range("A8:A" & LR)
    

    【讨论】:

      猜你喜欢
      • 2018-02-08
      • 2014-01-28
      • 1970-01-01
      • 2016-11-19
      • 2019-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多