0

我想从一个工作簿复制一列数据(我想至少复制单元格值),然后将复制的数据粘贴/更新到另一个工作簿。首先,我在源工作簿中创建了一个命令按钮,因此每次单击该按钮时,所有数据都会从另一个文件中自行更新。

这是我拥有的代码。它一次只复制一个单元格,而不是复制一整列。

Private Sub CommandButton1_Click()
Dim itemCapRet As String
Dim Testing1 As Workbook

Worksheets("Testing2").Select
itemCapRet = Range("I1")

Set myData = Workbooks.Open("C:\Documents\Testings\Testing2.xlsx")
Worksheets("sheet1").Select
Worksheets("sheet1").Range("A1").Select
RowCount = Worksheets("sheet1").Range("A1").CurrentRegion.Rows.Count
With Worksheets("Sheet1").Range("A1")
.Offset(RowCount, 0) = itemCapRet
.Offset(RowCount, 1) = itemPrice
End With
Testing1.Save
End Sub
4

3 回答 3

1

此代码会将活动工作簿的工作Testing2表 Column设置为位于工作簿中工作表I上的列ASheet1C:\Documents\Testings\Testing2.xlsx

Sub CopyColumn()
Dim WB1 As Workbook
Dim WB2 As Workbook

Set WB1 = ActiveWorkbook
Set WB2 = Workbooks.Open("C:\Documents\Testings\Testing2.xlsx")

WB1.Sheets("Testing2").Columns("I").Value = WB2.Sheets("sheet1").Columns("A").Value

WB2.Close
End Sub

更新:基于评论的代码:

Private Sub CommandButton1_Click()
Dim wb1 As Workbook
Dim wb2 As Workbook
Set wb1 = ActiveWorkbook
Set wb2 = Workbooks.Open("C:\Users\zyu\Documents\Processed Data\Allagash\16 cells\Copy of TXM10421_24M_capacity_102113.xls")

wb1.Sheets("Sheet1").Columns("S").Value = wb2.Sheets("16").Columns("N").Value

End Sub
于 2013-10-18T16:37:54.543 回答
0

有很多问题。我建议从小处着手,然后建立你想要的东西。

您没有正确引用工作簿。您定义了 myData & Testing1 但从不使用它。

此外,您对单行进行行数。

itemPrice 从未设置。

您保存了 Testing1 工作簿,但您没有更改任何内容。

仍然有很多逻辑问题,但这会让你开始。不确定您从哪个工作簿复制并且太准确。

Private Sub CommandButton1_Click()
    Dim itemCapRet As String
    Dim wbk_Testing1 As Workbook
    Dim wbk_Current As Workbook
    Set wbk_Current = ActiveWorkbook

    Set wbk_Testing1 = Workbooks.Open("C:\Documents\Testings\Testing2.xlsx")
    wbk_Testing1.Worksheets(1).Columns("A:A").Copy

    wbk_Current.Worksheets("Testing2").Activate
    Range("A1").Select
    ActiveSheet.Paste

    wbk_Testing1.Save
End Sub
于 2013-10-18T15:17:28.933 回答
0

除了 Testing2 中单元格 J1 的内容之外,您的宏不会复制任何数据。你想复制什么范围?

如果您尝试复制和粘贴整个列,更改
itemCapRet = Range("I1")itemCapRet = Range("I:I")
复制所有列 J,但正如 Portland Runner 刚刚回答的那样,这里定义了很多未使用的内容。

于 2013-10-18T15:20:06.287 回答