簡體   English   中英

從一個Excel到另一個Excel逐個單元復制值

[英]Copying value cell by cell from one excel to another excel

我想將值從一個Excel文件復制到另一個Excel文件,但是在項目的后期階段,我可能需要交叉檢查該值,然后將其粘貼到新的Excel文件中。 所以我不想一次復制整張紙。 我想按值復制一個值。

我可以打開並在excel文件之間切換,但無法復制和粘貼值。 以下是我嘗試的代碼-

Private Sub CommandButton1_Click()
Dim x As Long
Dim NumRows As Long
Set fromwb = Workbooks.Open("G:\Excel\From.xlsx")
Set towb = Workbooks.Open("G:\Excel\To.xlsx")
fromwb.Activate
NumRows = Range("A1", Range("A1").End(xlDown)).Rows.Count
ReDim a(1 To NumRows)

For x = 1 To NumRows
    fromwb.Activate
    a(x) = Cells(x, 1).Value

    towb.Activate
    Cells(x, 1).Value = a(x)
Next x

End Sub

感謝你在期待。

您只需要將to單元格指定為from單元格,而無需循環任何內容。

Workbooks("To.xlsx").Sheets("ToSheetNameHere").Range("rangehere").Value = Workbooks("From.xlsx").Sheets("FromSheetNameHere").Range("rangehere").Value

請記住,如果工作簿中有宏代碼,它們將是.xlsm而不是.xlsx

試試下面的代碼。 希望評論很清楚!

Option Explicit
Private Sub CommandButton1_Click()

Dim SourceBook As Workbook, DestBook As Workbook
Dim SourceSheet As Worksheet, DestSheet As Worksheet
Dim Index As Long, NumRows As Long
Dim ValidCheck As Boolean

'set references up-front
Set SourceBook = Workbooks.Open("G:\Excel\From.xlsx")
Set SourceSheet = SourceBook.ActiveSheet
With SourceSheet
    NumRows = .Range("A", .Rows.Count).End(xlUp).Row '<~ last row in col A
End With
Set DestBook = Workbooks.Open("G:\Excel\To.xlsx")
Set DestSheet = DestBook.ActiveSheet

'loop through col A and write out values to destination
For Index = 1 To NumRows

    '...
    'do your value validation
    'in this space using ValidCheck
    '...

    If ValidCheck Then '<~ if true write to Dest
        DestSheet.Cells(Index, 1) = SourceSheet.Cells(Index, 1)
    End If '<~ if not, do not write to Dest

Next Index

End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM