[英]Need to copy/paste row (x number of times) when cell value equals X
我正在嘗試將Excel用於珠寶訂購單。
在訂單表(第1頁)中,用戶可以從格式化為下拉列表的單元格中選擇一個數字,該數字表示一件珠寶中的寶石數量。 例如,如果戒指中有10顆寶石,則用戶從下拉列表中選擇10顆。
需要在訂單表(Sheet1)中捕獲10個寶石中每個寶石的詳細信息。 例如,每塊寶石將具有4個數據元素...寶石的類型,重量,顏色,切面...因此,我創建了所需的格式化的數據行(在Sheet2中),其中每個單元格都是用戶下拉菜單從中選擇。
我想創建一個控制按鈕來執行以下操作:
刪除工作表Sheet1中的19:150行,這將清除可能顯示的所有先前的石頭詳細信息。
在Sheet1的單元格C13中查找值。此值將用於確定應粘貼/顯示多少行
復制行,范圍A2:Sheet2中的D2這是模板行數據,其中行中的每個單元格都是其自己的下拉列表。
Sheet1中B19中的粘貼行這是粘貼到訂單中的模板行。
4a)粘貼與上述步驟(2)中的值一樣多的行。
例如,如果步驟2中從上方開始的值為“ 3”,則石材詳細信息行將需要在訂單中粘貼3次。
我能得到的最遠的是創建控制按鈕和delete子句...
Private Sub CommandButton1_Click()
Sub deleteMultipleRows()
Rows("19:150").Delete
End Sub
對於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.
都可以忽略Selection.
命令可以組合(大多數情況下應如此)。 工作表1 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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.