0

1 つのワークブックから 1 列のデータをコピーし (少なくともセル値をコピーしたい)、コピーしたデータを別のワークブックに貼り付け/更新します。最初に、ソース ワークブックにコマンド ボタンを作成したので、そのボタンをクリックするたびに、すべてのデータが別のファイルから更新されます。

これは私が持っているコードです。列全体をコピーするのではなく、一度に 1 つのセルのみをコピーします。

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

このコードは、アクティブなワークブックのTesting2Sheet Columnを、次の場所にある WorkbookのワークシートIの Columnに設定します。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

マクロは、Testing2 のセル J1 の内容以外のデータをコピーしていません。どの範囲をコピーしようとしていますか?

列全体をコピーして貼り付けようとしている場合は、列 J のすべてをコピーするように変更
itemCapRet = Range("I1")itemCapRet = Range("I:I")
ますが、Portland Runner が答えたように、ここでは使用されていない定義がたくさんあります。

于 2013-10-18T15:20:06.287 に答える
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 に答える