0

所以我没有VBA背景,但我通过搜索互联网设法把它放在一起。它适用于最终目标是让用户(工程师)选择某些复选框的工作簿。完成后(并且会有很多复选框),他们单击“构建”按钮,根据他们的选择,他们将生成一个新的工作表或新的工作簿(还没有决定那个)按顺序粘贴到其中的选定信息。

这是代码:

Sub Merge()

    If Range("F3") = True Then

            Sheets("Data").Select
            Range("A1:A8").Select
           Selection.Copy

            Sheets("UI").Select
            Cells(1, 1).Select
            Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
               False, Transpose:=False
            Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _
               False, Transpose:=False
        Else
              MsgBox "Part 1 - Failed."
    End If

    If Range("F6") = True Then

            Sheets("Data").Select
            Range("A10:A17").Select
            Selection.Copy

            Sheets("UI").Select
            Cells(10, 1).Select
            Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
               False, Transpose:=False
            Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _
               False, Transpose:=False
        Else
            MsgBox "Part 2 - Failed"
    End If

    If Range("F9") = True Then

            Sheets("Data").Select
            Range("A19:A26").Select
            Selection.Copy

            Sheets("UI").Select
            Cells(19, 1).Select
            Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
               False, Transpose:=False
            Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _
               False, Transpose:=False
        Else
            MsgBox "Part 3 - Failed"
    End If

End Sub

这是我谷歌驱动器中的文件,如果这让你更容易: https ://drive.google.com/file/d/0Bza853yM-QSMSlFWbElBc1dsbGM/edit?usp=sharing

目前,它正在将“真”的范围粘贴到预定义的单元格范围中。但是,我想要的是,如果 Red = True 且 Green = True,则红色将粘贴到 A1:A8 中,而 Green 将粘贴到 A10:A18 中。同样,如果蓝色和绿色为真,或者只有蓝色或绿色为真,它们粘贴到 A1:A8 中,下一个“真”语句粘贴在它们下面。这样,您可以拥有任意数量的 True 语句,它们将按顺序粘贴,它们之间只有 1 行而不是 8 或 20 行。

我查看了这个网站和其他网站,但没有找到任何东西。所以我不确定这是否可能,或者我对这个主题太无知,无法搜索我正在寻找的概念的词语。

谢谢你的智慧!-担

4

1 回答 1

0

您可以在“UI”表上找到下一个空白单元格,然后将下一组结果粘贴到该单元格中,而不是将副本粘贴到静态范围中。

查找下一个空白单元格的代码...

Sheets("UI").Select
Range("A2").Select
Selection.End(xlDown).Select
Selection.Offset(1, 0).Select
于 2013-11-14T15:35:21.533 回答