Airman
Lv 4
Airman asked in 電腦與網際網路程式設計 · 1 decade ago

VBA~請教T2與T1新增需求之程式語法。

如題

範例附檔︰http://www.funp.net/272125

T2之需求︰

當T6有顯示出各運算起訖期數+1之B︰H的7個數值,

即=$S$6的A欄期數之B︰H的7個數值時,

就在T2標示1,2,3,4,5,6,7的註記,

即T6顯示各運算起訖期數+1之B儲存格數值時,則標示1;

顯示C儲存格數值時,則標示2;顯示D儲存格數值時,則標示3;

…………以此類推。

T1之需求︰

當各運算起訖期數之T2儲存格有顯示數值時,則標示0;

當各運算起訖期數之T7(含)以下任一儲存格有顯示數值時,則標示1;

當各運算起訖期數之T2儲存格&T7以下儲存格都有顯示數值時,則標示10;

並將有標示1之T1儲存格標示淡藍色;有標示10之T1儲存格標示黃色。

當各運算起訖期數之T2儲存格與T7(含)以下儲存格都無顯示數值時,

則T1儲存格顯示【空白】。

例如︰在運算起訖期數對話框填入︰

運算起期︰110;運算訖期︰112

則可得TEST_B_110;TEST_B_111;TEST_B_112之3個效果檔。

>>>>>>詳如︰上傳範例附檔<<<<<<

PS︰小弟使用的是2003版。

請教TEST_B新增的T2與T1需求之程式語法應該如何撰寫?

懇請

各位EXCEL大師與賢達不吝指教。

謝謝!

2 Answers

Rating
  • Anonymous
    1 decade ago
    Favorite Answer

    1. 稍改效率試試 : http://www.funp.net/557007

    2. 不太暸題意 :

    1. 執行 110 ~ 110 後,

    2. 看 TEST_B 的 Sheet1,

    3. 此時 T6 = 07 ; S6 = 111 ;

    請問要怎麼作 ??

    2009-05-23 02:02:31 補充:

    第一行就不懂 ...

    (被秒殺 ~ 哈哈)

    T6=07

    S6=111

    為何找 B118:H118 ?

    2009-05-23 02:30:48 補充:

    喔 ~ 大致暸了 ~ 明日找時間再答 ~

    所以說我怕您的題目, 呵呵 ~

    2009-05-23 22:04:16 補充:

    實在太複雜了,

    請作一個 Sheet8 的表格表達好了 ~

    2009-05-23 22:04:36 補充:

    http://www.funp.net/150055

    請作一個 Sheet8 的表格表達好了 ~

    2009-05-24 00:34:00 補充:

    只差一腳, 別放棄 ~

    1. [T1:A?2] 是要填值處, Right ?

    2. 我的 sheet8 :

    "左有" 表歷史資料(如[B111:H111])有 ; "下有" 表公式有

    2009-05-25 22:05:52 補充:

    送佛送上西, 再幫您做些提升 ~

    1. 需求程式 :

    Sub 期資料符合()

    'By WLZ 20090524

    Dim 期資料 As Range

    Set 期資料 = [B6:H6].Offset([S6] + 1)

    Dim RgM As Range, Rg As Range, t

    Set RgM = Range([T6], [T6].End(xlToRight))

    With RgM.Offset(-5, 0).Resize(2)

    .NumberFormatLocal = ""

    .Font.Bold = True

    .Font.ColorIndex = 7

    End With

    RgM.Offset(-5, 0).Font.ColorIndex = 11

    For Each Rg In RgM.Cells

    t = Application.Match(Rg.Value, 期資料, 0)

    If Not IsError(t) Then

    Rg.Offset(-4) = t

    Rg.Offset(-5) = 0

    End If

    If Application.Sum(Range(Rg, Rg.End(xlDown)).Offset(1, 0)) > 0 Then

    Rg.Offset(-5) = 1 & Rg.Offset(-5)

    If Rg.Offset(-5) = 1 Then

    Rg.Offset(-5).Interior.ColorIndex = 8

    Else

    Rg.Offset(-5).Interior.ColorIndex = 6

    End If

    End If

    Next Rg

    End Sub

    2. 程式效率提升 :

    多處 :

    With Application

    .Calculation = xlAutomatic

    End With

    With Application

    .Calculation = xlManual

    End With

    ActiveSheet.Calculate

    取代 ~

    3. 參考檔案 : http://www.funp.net/881164

  • Airman
    Lv 4
    1 decade ago

    worlonzeng大師︰

    感謝您再次為小弟修改程式碼!!!

    此次效率提高了好幾倍,

    由衷感激!!!謝謝您!!!

    ^^

    小弟現以您提之Sheet 1的T6為例,說明如下︰

    1.因為T6=07,【07】並未顯示在=S6的A欄(118列)之B︰H儲存格中,故T2無顯示1~7的註記,則T1不標示【0】。

    2.而T7(含)以下【任何一個】儲存格,又無符合公式條件,故無期數值顯示,則T1不標示【1】。

    3.綜上所述,因而T1顯示【空白】,亦無任何顏色標示。

    《續》

    2009-05-22 19:46:36 補充:

    《承上》

    再以AH6為例︰

    1.因為AH6=01,【01】並未顯示在=S6的A欄(118列)之B︰H儲存格中,故AH2無顯示1~7的註記,則AH1不標示【0】。

    2.在AH7(含)以下之【AH20】儲存格,有顯示符合公式條件的【107】期數值,則AH1標示【1】。

    3.綜上所述,因AH1有標示【1】,則AH1以水藍色標示。

    《續》

    2009-05-22 19:48:09 補充:

    《承上》

    再以AJ6為例︰

    1.因為AJ6=14,【14】有顯示在=S6的A欄(118列)之B118儲存格中,故AJ2顯示【1】的註記,則AJ1標示【0】。

    2.而AJ7(含)以下【任何一個】儲存格,並無符合公式條件,故無期數值顯示,則AJ1不標示【1】。

    3.綜上所述,因AJ1有標示【0】,則AJ1就以【0】標示。

    《續》

    2009-05-22 19:50:25 補充:

    《承上》

    再以Sheet 3之AO6為例︰

    1.因為AO6=30,【30】有顯示在=S6的A欄(118列)之D118儲存格中,故AO2顯示【3】的註記,則AO1標示【0】。

    2.在AO7(含)以下之【AO12】儲存格,有顯示符合公式條件的【29】期數值,則AH1標示【1】。

    3.綜上所述,因AO1有標示【0】,又有標示【1】,合併後,即AO1標示為【10】,且AO1則以黃顏色標示。

    《續》

    2009-05-22 19:52:34 補充:

    《承上》

    可能是因小弟疏忽,未註解【10】是由0和1合併而來的,

    且為利於說明順序,二個數字又顛倒合併,才令大師一頭霧水,

    尚請大師多多包涵。謝謝您!!!

    T1&T2再加註函數公式,純為輔助文字說明不足之用。

    http://www.funp.net/495331

    謹請參考!!! 謝謝您!!!

    2009-05-23 06:24:05 補充:

    worlonzeng大師︰

    有勞您費神了!!!

    謝謝您!!!

    ^^

    2009-05-24 00:06:23 補充:

    worlonzeng大師︰

    @~@~

    可能是大師並未下載意見006的http://www.funp.net/495331%E7%AF%84%E4%BE%8B%E5%8F...

    所以輪到小弟望著Sheet8發楞!

    不知如何填入數字去向您表達~

    也許小弟認為既是相關聯的問題,所以一次提問,

    現在可能反而是弄巧成拙~『欲速則不達』~。

    為感謝大師花費時間與精神在小弟的問題上,

    因此小弟就將問題再分解,以求簡化易瞭,

    並避免再徒費大師的寶貴時間。

    此題就先擱置,當作是最後的總結題。

    只是這樣就變成要麻煩大師很多次了,

    實在不好意思,尚請見諒!!!

    辛苦您了!!!謝謝您!!!

    2009-05-25 15:11:03 補充:

    worlonzeng大師︰

    以另寄範例,謹請參考。謝謝您!!!

Still have questions? Get your answers by asking now.