VBA回路粘贴值另一片
我希望你们中的一个可以帮助我解决这个问题:VBA回路粘贴值另一片
在Sheet1中,我有一个从“SEM1”到“Sem52”名称的组合框。这些名称也对应于图纸名称(如“Sem1”,“Sem2”,...)。根据组合框中选择的文本,我想将Sheet1中的值粘贴到相关表单中。 我让你在我的起草代码和想法将避免重复我的IF条件52次!我想我需要设置一个新的变量(例如Dim i as integer,对于i = 1到52),但我真的不知道如何制作它。
感谢您的帮助
Dim cmbx As ComboBox
Set cmbx = Sheets("Sheet1").ComboBox1
If cmbx.Text = "Sem1" Then
Sheets("Sheet1").Select
Range("c41:c42").Select
Selection.Copy
Sheets("Sem1").Select
Range("p34").Select
Selection.PasteSpecial Paste:=xlPasteValues
您可以直接开车送你与基于所选文本工作表:
Dim cmbx As ComboBox
Set cmbx = Sheets("Sheet1").ComboBox1
Sheets("Sheet1").Range("c41:c42").Copy
Sheets(cmbx.Text).Range("p34").PasteSpecial Paste:=xlPasteValues
由于组合框中可用的选项都与相应工作表的名称相匹配,因此将选择相应的工作表(与用户选择的名称相匹配),然后进行操作。
您可以使用一个for循环:
http://www.excel-easy.com/vba/loop.html
Dim i As Integer
For i = 1 To 6
If cmbx.Text = ("Sem" && i) Then
...
Next i
喜史蒂夫,感谢您的帮助,但下面的代码不起作用如果cmbx.Text =(“SEM” &&我)然后 – Dugaet 2015-02-08 09:34:08
您可以粘贴特殊在很多工作表没有一个循环。下面是目的地的例子:
Sub dural()
Sheets("Sheet1").Range("C40:C41").Copy
Sheets(Array("Sem1", "Sem2")).Select
Range("P34").Select
Selection.PasteSpecial Paste:=xlPasteValues
End Sub
事情是,我只想复制用户选择的工作表中的值。如果他选择了Sem1,那么该值将被复制到表格Sem1中。 – Dugaet 2015-02-08 09:44:19
杰森您好,感谢这个想法,但它并没有真正的工作。代码中需要调整的两个棘手部分是(i)如果cmbx.Text =“Sem1”Then和(ii)Sheets(“Sem1”)。在combobx中的选择必须触发选择相关工作表,我可以在其中粘贴一些数据。再次感谢您的建议 – Dugaet 2015-02-08 10:30:58
@Dugaet - 没有问题 - 然后 - 它实际上更容易做到这一点。查看更新后的答案。 – 2015-02-08 13:52:14
谢谢贾森它完美的作品:) – Dugaet 2015-02-09 19:16:10