簡體   English   中英

當單元格值等於X時需要復制/粘貼行(x次)

[英]Need to copy/paste row (x number of times) when cell value equals X

我正在嘗試將Excel用於珠寶訂購單。

在訂單表(第1頁)中,用戶可以從格式化為下拉列表的單元格中選擇一個數字,該數字表示一件珠寶中的寶石數量。 例如,如果戒指中有10顆寶石,則用戶從下拉列表中選擇10顆。

需要在訂單表(Sheet1)中捕獲10個寶石中每個寶石的詳細信息。 例如,每塊寶石將具有4個數據元素...寶石的類型,重量,顏色,切面...因此,我創建了所需的格式化的數據行(在Sheet2中),其中每個單元格都是用戶下拉菜單從中選擇。

我想創建一個控制按鈕來執行以下操作:

  1. 刪除工作表Sheet1中的19:150行,這將清除可能顯示的所有先前的石頭詳細信息。

  2. 在Sheet1的單元格C13中查找值。此值將用於確定應粘貼/顯示多少行

  3. 復制行,范圍A2:Sheet2中的D2這是模板行數據,其中行中的每個單元格都是其自己的下拉列表。

  4. 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命令以及.SelectSelection.都可以忽略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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM