簡體   English   中英

Excel宏-如何根據特定的單元格值復制/拆分行

[英]Excel Macro - How to copy/split row based on specific cell value

我正在處理一個巨大的電子表格,並且需要一些有關我要為其編寫的特定宏的幫助。

我有一堆信息,涉及哪些設備進入哪個房間。 每個房間針對要安裝的設備類型都有自己的一行。 有時,一個房間有多個相同的設備,並在數量列中指定。 我需要拆分/復制這樣的行,以便每個設備都有自己的行。

我目前所擁有的:

 A              B            C
 Equip. Name    Rm Number    Quantity
 xxxxx          1.2.3.4      5
 yyyyy          1.2.3.4      1

我需要宏為我執行的操作:查找數量大於1的所有行並將其復制到下面的行中,數量與數量值相同,且數量相同,並在整個電子表格中將其全部替換為數量1。

 A              B            C
 Equip. Name    Rm Number    Quantity
 xxxxx          1.2.3.4      1
 xxxxx          1.2.3.4      1
 xxxxx          1.2.3.4      1
 xxxxx          1.2.3.4      1
 xxxxx          1.2.3.4      1
 yyyyy          1.2.3.4      1     

先感謝您。

為了擴展行,該附加宏將遵循以下模式:

  • 從最后一行開始遍歷數據
  • 如果數量> 1,
  • 插入行以騰出空間
  • 向下復制行數據
  • 將數量設置為1

Sub ExpandRows()
    Dim dat As Variant
    Dim i As Long
    Dim rw As Range
    Dim rng As Range

    Set rng = ActiveSheet.UsedRange
    dat = rng

    ' Loop thru your data, starting at the last row 
    For i = UBound(dat, 1) To 2 Step -1
        ' If Quantity > 1
        If dat(i, 3) > 1 Then
            ' Insert rows to make space
            Set rw = rng.Rows(i).EntireRow
            rw.Offset(1, 0).Resize(dat(i, 3) - 1).Insert
            ' copy row data down
            rw.Copy rw.Offset(1, 0).Resize(dat(i, 3) - 1)
            ' set Quantity to 1
            rw.Cells(1, 3).Resize(dat(i, 3), 1) = 1
        End If
    Next
End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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