我试图使用Excel作为珠宝订单。
在订购单(sheet1)中,用户可以从格式化为下拉列表的单元格中选择一个数字,该数字表示一件珠宝中的宝石数量。例如,如果一个环中有10个宝石,则用户从下拉列表中选择10个。
需要在订单表格(Sheet1)中捕获10个宝石中每个宝石的详细信息。例如,每个石头将有4个数据元素......石头类型,重量,颜色,切割...所以我创建了所需的格式化数据行(在Sheet2中),其中每个单元格是用户的下拉列表选择。
我想创建一个控制按钮来执行以下操作:
删除Sheet1中的行19:150 这将清除可能显示的任何先前的石头细节。
在Sheet1中查找单元格C13中的值 该值将用于确定应粘贴/显示的行数
在Sheet2中复制行,范围A2:D2 这是模板行数据,其中行中的每个单元格都是自己的下拉列表。
在Sheet1中的B19中粘贴行 这是粘贴到订单表单中的模板行。
4a)粘贴与上面步骤(2)中的值一样多的行。
例如,如果上面步骤2中的值是" 3",则需要在订单表格中粘贴石头详细信息行3次。
我能够获得的最远的是创建控制按钮和删除条款......
Private Sub CommandButton1_Click()
Sub deleteMultipleRows()
Rows("19:150").Delete
End Sub
答案 0 :(得分:0)
对于delete语句,您应该使用Sheet1.Rows("19:150").Delete
,因为这将确保excel知道从哪个表中删除这些行。
您可以声明一个变量并为其赋值,如下所示:
Dim rowCount as Integer
rowCount = Sheet1.Range("C13")
如果您尝试为复制和粘贴录制宏,则应该看到一些示例代码。
注意:强>
如果结果如下所示:
Sheet1.Activate
Row(2).Select
Selection.Copy
你可以像这样组合这样的陈述:
Sheet1.Row(2).Copy
由于可以忽略大多数.Activate
命令,并且可以组合.Select
和Selection.
命令(并且应该在大多数情况下)。 Sheet1.
之前添加的.Row(2)
告诉Excel专门使用Sheet1中的第2行。如果没有限定符,即仅Row(2)
,则Excel将使用当前处于活动状态的工作表中的第2行。
然后您可以使用变量和工作表中的值来循环粘贴或复制/粘贴组合,如下所示:
Dim counter as integer
For counter = 1 to Sheet1.Range("C13")
'Add code for copy/paste here
Next counter
或者如果你声明并分配了rowCount
变量,你可以在这里使用它:
Dim counter as integer
For counter = 1 to rowCount
'Add code for copy/paste here
Next counter