Excel VBA для копирования столбца в существующую книгу - PullRequest
1 голос
/ 29 марта 2012

У меня есть Рабочая книга, source.xlsm , Рабочая таблица "test1" Столбец A6: A20 , который мне нужно скопировать в другую рабочую книгу, расположенную на моем C: ... с именем dest.xlsx , Рабочий лист "Активы" , Столбец "I" .Мне нужно иметь возможность копировать данные и добавлять в столбец, не перезаписывая ранее скопированные данные.Любая помощь будет спасением.

Sub Align()
    Dim TargetSh As String

    TargetSh = "Assets"

    For Each WSheet In Application.Worksheets

        If WSheet.Name <> TargetSh Then
            WSheet.Select
            Range("A6:A20").Select
            Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
            Selection.Copy
            Sheets(TargetSh).Select
            lastRow = Range("I65532").End(xlUp).Row
            Cells(lastRow + 1, 1).Select
            ActiveSheet.Paste
        End If
    Next WSheet
End Sub

1 Ответ

1 голос
/ 29 марта 2012

Это то, что вы пытаетесь?У меня не проверено это, но я думаю, что это должно работать.Дайте мне знать, если вы получите какие-либо ошибки.

Sub Sample_Copy()
    Dim wb As Workbook, wbTemp As Workbook
    Dim ws As Worksheet, wsTemp As Worksheet
    Dim lastRow As Long

    Set wb = ThisWorkbook
    Set ws = wb.Sheets("test1")

    '~~> Change path as applicable
    Set wbTemp = Workbooks.Open("C:\dest.xlsx")
    Set wsTemp = wbTemp.Sheets("Assets")

    lastRow = wsTemp.Range("I" & Rows.Count).End(xlUp).Row + 1

    ws.Range("A6:A20").Copy wsTemp.Range("I" & lastRow)

    Application.CutCopyMode = False

    '~~> Cleanup
    wbTemp.Close savechanges:=True
    Set wb = Nothing: Set wbTemp = Nothing
    Set ws = Nothing: Set wsTemp = Nothing
End Sub

HTH

Sid

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...