VBA 循环将值粘贴到另一个 sheet
VBA loop to paste value in another sheet
希望你们中的一位能帮我解决这个问题:
在 Sheet1 中,我有一个名称从 "Sem1" 到 "Sem52" 的组合框。这些名称也对应于 sheet 个名称(因此 "Sem1"、"Sem2"、...)。根据在组合框中选择的文本,我想将 Sheet1 中的值粘贴到相关的 sheet。
我在此处向您展示了我起草的代码,我的想法是避免重复我的 IF 条件 52 次!我想我需要设置一个新变量(例如,将 i 调暗为整数,对于 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
您可以使用 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
您可以根据所选文本直接驱动您正在使用的sheet:
Dim cmbx As ComboBox
Set cmbx = Sheets("Sheet1").ComboBox1
Sheets("Sheet1").Range("c41:c42").Copy
Sheets(cmbx.Text).Range("p34").PasteSpecial Paste:=xlPasteValues
由于组合框中可用的选项都与相应 sheet 的名称相匹配,因此选择适当的 sheet(与用户选择的名称相匹配)然后进行操作。
您可以 PasteSpecial 在许多工作表中 而无需 循环。这是 2 个目的地的示例:
Sub dural()
Sheets("Sheet1").Range("C40:C41").Copy
Sheets(Array("Sem1", "Sem2")).Select
Range("P34").Select
Selection.PasteSpecial Paste:=xlPasteValues
End Sub
希望你们中的一位能帮我解决这个问题:
在 Sheet1 中,我有一个名称从 "Sem1" 到 "Sem52" 的组合框。这些名称也对应于 sheet 个名称(因此 "Sem1"、"Sem2"、...)。根据在组合框中选择的文本,我想将 Sheet1 中的值粘贴到相关的 sheet。 我在此处向您展示了我起草的代码,我的想法是避免重复我的 IF 条件 52 次!我想我需要设置一个新变量(例如,将 i 调暗为整数,对于 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
您可以使用 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
您可以根据所选文本直接驱动您正在使用的sheet:
Dim cmbx As ComboBox
Set cmbx = Sheets("Sheet1").ComboBox1
Sheets("Sheet1").Range("c41:c42").Copy
Sheets(cmbx.Text).Range("p34").PasteSpecial Paste:=xlPasteValues
由于组合框中可用的选项都与相应 sheet 的名称相匹配,因此选择适当的 sheet(与用户选择的名称相匹配)然后进行操作。
您可以 PasteSpecial 在许多工作表中 而无需 循环。这是 2 个目的地的示例:
Sub dural()
Sheets("Sheet1").Range("C40:C41").Copy
Sheets(Array("Sem1", "Sem2")).Select
Range("P34").Select
Selection.PasteSpecial Paste:=xlPasteValues
End Sub