2015-04-02 58 views
0

我一直在做一個項目,我試圖讓事情更加順利:)基於與VBA

我有一個Excel工作表與幾個列,你可以看到另一個單元格的值合併單元格它下面,列C爲主題的重要性(基於該行中鍵入的信息)和列d是輸入的信息是否是新的信息或關於先前(上)行進行更新。洙:

如果I型柱上d 「更新」

,行3;我希望它自動合併單元格C2和C3。

 C  D 
1 LOW  new 
2 HIGH new 
3   update 
4 Low  new 
5   update 
6   update 

我不知道該怎麼寫VBA代碼,但我能理解大部分的代碼足以採取什麼樣的,我覺得互聯網上什麼,我想實現。我已經檢查了這麼多的網站會發現無論我需要的,但我沒有運氣,所以我真的很感激,如果你能幫助我:)

回答

0

試試這個:

Sub Merge_Priority() 
Dim RgToMerge As String 


For i = 1 To ActiveSheet.Cells(Rows.Count, 4).End(xlUp).Row 
    RgToMerge = "" 
    If LCase(Cells(i, 4)) <> "update" Or (LCase(Cells(i + 1, 4)) <> "new" And Cells(i + 1, 4) <> "") Then 
    Else 
     RgToMerge = "$C$" & Cells(i, 3).End(xlUp).Row & ":$C$" & i 
     With Range(RgToMerge) 
      .Merge 
      .HorizontalAlignment = xlCenter 
      .VerticalAlignment = xlCenter 
     End With 
    End If 

Next i 

End Sub 

你知道如何在一個事件添加宏?

轉到Visual Studio中,選擇左側ThisWorkBook並創建該宏:

Private Sub Worksheet_Change() 

並粘貼代碼,右側上方

+0

非常感謝您的迴應!我的負擔,抱歉,我以爲我將能夠編輯您發佈的代碼,它適應我的文件,我其實不能這樣做。列中包含高值和低值是C,以及新的和更新列D.能否請你幫我根據這個信息更改代碼? – 2015-04-02 10:25:22

+0

更改完成! ;)如果一切正常,plz驗證答案關閉主題! – R3uK 2015-04-02 11:49:07

+0

一切都不錯,但我不知道怎麼回事,這個代碼,當合並它從頂部(C1)直至最後一行與「更新」值合併單元格,併合並所有列在其中。無論如何編碼它,以便單元格將合併,直到以前(向上)「新」值? – 2015-04-02 13:09:32

0

你可以嘗試這樣的事情在當前工作表中添加此宏。

Private Sub Worksheet_Change(ByVal Target As Range) 

IF Target.value = "Update" then 
    Range("A" & Target.row - 1 & ":A" & Target.row).Merge 
End If 

End Sub 
+0

有了,你將只合並兩個細胞,但它確實會在工作表中的每個更改都會啓動。 – R3uK 2015-04-02 09:07:03