所以我没有VBA背景,但我已经设法通过搜索互联网把它放在一起。它适用于工作簿,其最终目标是让用户(工程师)选择某些复选框。完成后(并会有很多复选框),他们点击“Build”按钮,根据他们的选择,他们将生成一个新的工作表或新的工作簿(尚未确定那个)与所有按顺序粘贴到其中的所选信息。
以下是代码:
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
这里是我的google驱动器中的文件,如果这样可以让您更轻松: https://drive.google.com/file/d/0Bza853yM-QSMSlFWbElBc1dsbGM/edit?usp=sharing
目前,它将“True”范围粘贴到预定义的单元格区域中。 但是,我想要的是如果Red = True和Green = True,那么红色被粘贴到A1:A8中,Green将被粘贴到A10:A18中。类似地,如果蓝色和绿色为真,或者只有蓝色或绿色为真,则它们粘贴到A1:A8中,下一个“True”语句粘贴在它们下面。这样你可以有任意数量的True语句,它们将按顺序粘贴,它们之间只有1行,而不是8或20行。
我浏览了这个网站和其他人,但没有找到任何东西。所以我不确定这是否可能,或者我对这个主题过于无知,无法搜索我正在寻找的概念。
感谢您的智慧! -Dan
答案 0 :(得分:0)
您可以在“UI”工作表上找到下一个空白单元格,然后将下一组结果粘贴到该区域,而不是将副本粘贴到静态范围中。
查找下一个空白单元格的代码......
Sheets("UI").Select
Range("A2").Select
Selection.End(xlDown).Select
Selection.Offset(1, 0).Select