使用VBA自动复制和粘贴整行(excel)

时间:2019-01-25 13:52:06

标签: excel vba rows

Sheets("Source").Select
Rows("1:1").Select
Selection.Copy
Sheets("Print").Select
Rows("1:1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False

Sheets("Source").Select
Rows("2:2").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Print").Select
Rows("1:1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False

因此,这是示例代码。 我想做的是自动将Source工作表中的每一行复制并粘贴到1:1工作表中的Print行中。

每次范围都不同。如果代码用作行号,那就太好了。

[第二个问题] 好吧,现在我遇到了新问题。 执行代码后,Excel冻结。

这是新代码。

Dim i As Long 'i - Number of rows in Source list
NumRows = Range("A1", Range("A1").End(xlDown)).Rows.Count
For i = 1 To NumRows
    Worksheets("Source").Rows(i).Copy
    Worksheets("Print").Rows("1:1").PasteSpecial Paste:=xlPasteValues
    Worksheets("Print").PrintOut Copies:=1, Collate:=True, _
            IgnorePrintAreas:=False
Next

3 个答案:

答案 0 :(得分:0)

您可以使用FOR循环序列,但是我不确定您想要的程序是什么。能否请您分享一些更多细节?

答案 1 :(得分:0)

如果我理解您的要求正确,那么您必须使用以下结构:

int[] arg1;
Javonet.New("Namespace.ClassName", new Object[] {arg1})

答案 2 :(得分:0)

让我们假设源工作表的结构类似于下图:

enter image description here

打印纸为空。

您可以尝试:

Option Explicit

Sub test()

    Dim wsSource As Worksheet, wsPrint As Worksheet
    Dim rngCopy As Range
    Dim LastRow As Long, LastColumn As Long

    Set wsSource = ThisWorkbook.Worksheets("Source")
    Set wsPrint = ThisWorkbook.Worksheets("Print")

    With wsSource

        'Find last row of column A
        LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
        'Find last column or row 1
        LastColumn = .Cells(1, .Columns.Count).End(xlToLeft).Column
        'Set range to copy
        Set rngCopy = .Range(.Cells(2, 1), .Cells(LastRow, LastColumn))

    End With

    rngCopy.Copy wsPrint.Range("A1")

End Sub

结果:

enter image description here