2016-12-16 74 views
0

我陷入了一個相當尷尬的境地: 可以說我有一個從2015年到2017年連續幾天的列, D.在列中查找多個單元格,從相鄰列中選擇單元格並分別爲每個單元格調用一個模塊

首先我想找到該列中包含該月的第一天的每個單元格。

其次,我想爲每個找到的單元(列F)選擇相同行和2列以外的單元格。

第三我想分別爲這些單元調用一個模塊(因爲我開發的模塊依賴於ActiveCell選擇)。

最後是否可以將每個單元格對應該月的第一天(模塊調用它的那個單元格)並自動填充到包含該月份的最後一天的行?

Date   Week Total Companytotal 
23-03-15 29-mar 224 45 
24-03-15 29-mar 251 37 
25-03-15 29-mar 365 77 
26-03-15 29-mar 404 147 
27-03-15 29-mar 394 132 
28-03-15 29-mar 514 123 
29-03-15 29-mar 538 132 
30-03-15 5-apr 472 122 
31-03-15 5-apr 551 152 
01-04-15 5-apr 730 163 
02-04-15 5-apr 604 112 
03-04-15 5-apr 511 129 
04-04-15 5-apr 336 84 
05-04-15 5-apr 298 98 
06-04-15 12-apr 517 144 
07-04-15 12-apr 507 121 
08-04-15 12-apr 647 165 
09-04-15 12-apr 646 181 
10-04-15 12-apr 745 189 
11-04-15 12-apr 643 168 
12-04-15 12-apr 699 174 
13-04-15 19-apr 698 174 
14-04-15 19-apr 759 160 
15-04-15 19-apr 937 221 
16-04-15 19-apr 1013 204 
17-04-15 19-apr 1263 274 
18-04-15 19-apr 1055 306 
19-04-15 19-apr 1173 287 
20-04-15 26-apr 909 209 

這是上述表格的一個片段(它一直延續到2017年)。我想稱之爲模塊的單元是Total,如果可能的話,則是Companytotal。

謝謝。

+1

你想讓這四個步驟處於相同的狀態VBA例程或函數,或者你希望它們是單獨的步驟,可能是單元函數和f作爲VBA例程或函數的一步?除此之外,單元格函數= DAY(...)將僅返回一個日期的月份中的某一天。 – JimmyNJ

+0

嘿!如果可能的話,我希望通過點擊一個按鈕來完成所有這些工作,但如果沒有的話。單獨的功能很好。 – user628797

+0

您有解決方案的第一步,就像JimmyNJ所說:函數= DAY(...)。你能繼續嗎?你有:第一個月,使用DateSerial(年,月,1),並在月的最後一天,使用DateSerial(年,月+ 1,0) –

回答

0

循環遍歷所有行。在循環中,檢查日期是否爲一個月的第一天。如果是,請選擇它並激活宏(它將成爲活動單元格)。宏執行時,循環繼續,併爲其餘單元執行相同的操作。

此外,儘量不要使用ActiveCell寫宏,選擇等,這將讓您的生活更輕鬆:)

0

那答案3第一步:

Sub tets() 

i = 2 
Do While Sheets("Sheet1").Range("D" & i).Value <> "" 
    If Day(Sheets("Sheet1").Range("D" & i).Value) = 1 Then 
     Range("F" & i).Select 
     SomeMacro 

    End If 

    i = i + 1 
Loop 

End Sub 

關於你的最後一個問題:它OFC是可能的,但我不明白,你想填寫哪些列,範圍是多少(從月初的第一天到最後一天,對嗎?)

相關問題