【发布时间】:2022-12-15 02:44:15
【问题描述】:
我有代码从单独的工作表中的三个不同列复制值。其中两列是文本字符串,最后一列是乘以用户输入的整数的数字。
有没有一种方法可以创建 For 循环或 Do 循环,从而使代码更简洁更短?
Global qty As Variant
Sub PartOrder()
qty = Application.InputBox("How many assemblies are needed?")
Sheets.Add After:=Worksheets(Sheets.Count)
PartOrderForm.Show
End Sub
Private Sub CompleteForm_Click()
If CheckBox1.Value = True Then
ActiveSheet.Range("A1") = "Part Number"
ActiveSheet.Range("B1") = "Part Name"
ActiveSheet.Range("C1") = "Number of Parts Needed"
ActiveSheet.Range("A2") = Worksheets("F8X SUSPENSION LINKS REV2").Range("B7")
ActiveSheet.Range("B2") = Worksheets("F8X SUSPENSION LINKS REV2").Range("C7")
ActiveSheet.Range("C2") = Worksheets("F8X SUSPENSION LINKS REV2").Range("F7") * qty
ActiveSheet.Range("A3") = Worksheets("F8X SUSPENSION LINKS REV2").Range("B8")
ActiveSheet.Range("B3") = Worksheets("F8X SUSPENSION LINKS REV2").Range("C8")
ActiveSheet.Range("C3") = Worksheets("F8X SUSPENSION LINKS REV2").Range("F8") * qty
ActiveSheet.Range("A4") = Worksheets("F8X SUSPENSION LINKS REV2").Range("B9")
ActiveSheet.Range("B4") = Worksheets("F8X SUSPENSION LINKS REV2").Range("C9")
ActiveSheet.Range("C4") = Worksheets("F8X SUSPENSION LINKS REV2").Range("F9") * qty
ActiveSheet.Range("A5") = Worksheets("F8X SUSPENSION LINKS REV2").Range("B10")
ActiveSheet.Range("B5") = Worksheets("F8X SUSPENSION LINKS REV2").Range("C10")
ActiveSheet.Range("C5") = Worksheets("F8X SUSPENSION LINKS REV2").Range("F10") * qty
ActiveSheet.Range("A6") = Worksheets("F8X SUSPENSION LINKS REV2").Range("B11")
ActiveSheet.Range("B6") = Worksheets("F8X SUSPENSION LINKS REV2").Range("C11")
ActiveSheet.Range("C6") = Worksheets("F8X SUSPENSION LINKS REV2").Range("F11") * qty
ActiveSheet.Range("A7") = Worksheets("F8X SUSPENSION LINKS REV2").Range("B12")
ActiveSheet.Range("B7") = Worksheets("F8X SUSPENSION LINKS REV2").Range("C12")
ActiveSheet.Range("C7") = Worksheets("F8X SUSPENSION LINKS REV2").Range("F12") * qty
ActiveSheet.Range("A8") = Worksheets("F8X SUSPENSION LINKS REV2").Range("B13")
ActiveSheet.Range("B8") = Worksheets("F8X SUSPENSION LINKS REV2").Range("C13")
ActiveSheet.Range("C8") = Worksheets("F8X SUSPENSION LINKS REV2").Range("F13") * qty
Else: End If
End Sub
【问题讨论】:
-
像
for i=2 to 8 | cells(i,1)= | cells(i,2)= | cells(i,3)=这样的东西,你只有 6 行和 3 列,所以这没什么大不了的。 -
For i = 2 To 8 ActiveSheet.Cells(i - 1, 0) = Worksheets("F8X SUSPENSION LINKS REV2").Cells(8 - i, 2) Next i这是正确的吗?它给了我一个错误。感谢您的帮助,您可以看出我对这个 @findwindow 还是个新手 -
你的错误是因为没有
0列 -
@DarrellH 谢谢!我将 0 更改为 1,但它显示“应用程序定义或对象定义的错误”