2012-03-26 158 views
1

我想知道如何編寫一個宏以將L3的值複製到L2,這是基於A2和A3相等而B2和B3也相等的事實。在隨後的列A和列B不相等的情況下,宏不需要推送數據。在某些情況下,可能會有多達10個後續行,其中A列值相等,最早的月份值需要滾動至A行匹配的最高行。基於Excel中的單元格複製其他單元格中的值

整張紙大約有150行,有許多城市和公司值。我目前正在手動執行此操作,而且耗時。電子表格的目的是根據從我們的基於SQL的CRM軟件包中提取的數據提供銷售訪問摘要。第4行沒有有意義的數據是上下文,但如果數據彙總到第2行,則不會影響第2行,只要所有訪問的月份都表示在列A & B匹配的最上一行中。

我猜測宏需要循環通過JAN(E列)並完成該列,然後循環遍歷列G到P之後。只有列E到P需要被操縱。如果數據在單元格中連接或者只是被覆蓋,我認爲它不會產生任何負面影響。宏完成後,給定公司在某個站點的最上一行應該包含訪問過的所有月份的值。

我的編程知識是有限的,但如果我得到一個好的示例,我通常可以反編譯足夠的代碼來修改它。我希望我的要求很明確。

+0

請告訴我們的你想要做什麼而不是用散文來描述它的例子。使用'固定寬度字體'('{}'按鈕)重現電子表格的一小部分。 – 2012-03-26 07:02:47

+0

將您的圖片發佈到任何在線存儲(imghack或其他),我們可以編輯您的問題,並在之後添加您的圖片。 – JMax 2012-03-26 07:13:37

回答

0

基於你的第一個最初的問題「如何L3複製到L2如果B2 = B3和A2 = A3」,這個基本的宏將讓你沿着這些線路的開始:

Option Explicit 

Sub CopyUP() 
Dim LR As Long, Rw As Long, col As Long 

LR = Range("A" & Rows.Count).End(xlUp).Row 'last row with data 

For Rw = LR To 2 Step -1     'from the bottom up, compare 
    If Range("A" & Rw) = Range("A" & Rw - 1) And _ 
     Range("B" & Rw) = Range("B" & Rw - 1) Then 

     For col = 5 To 16  'columns E:P 
      If Cells(Rw, col) <> "" Then Cells(Rw - 1, col) = Cells(Rw, col) 
     Next col 

    End If 
Next Rw 

End Sub 
+0

感謝您的回覆。我已經在我的數據中進行了測試,據我瞭解,宏將比較列A和B中的值與整個工作表中單元格中存在值的連續行進行比較,並不斷地將列L中的值從底部直到列A和B中的值發生變化。這是我正在尋找的效果。我現在發現的問題是,L列中的單元格爲匹配列A和B值塊的最底部行始終爲空,因此列L中的數據被有效擦除而不是被複制。 – 2012-03-26 12:05:44

+0

是否有辦法a)擴大值的複製以包括列E到P和b)跳過這些列中的空單元格以便其餘數據未被擦除? – 2012-03-26 12:15:37

+0

我已經編輯了上面的宏建議以包含E:P列,並且如果有要複製的東西,它將只複製UP。 – 2012-03-26 15:29:41

相關問題