Board logo

標題: [發問] 第一列增加顏色標示。 [打印本頁]

作者: ziv976688    時間: 2019-5-12 13:04     標題: 第一列增加顏色標示。

本帖最後由 ziv976688 於 2019-5-12 13:06 編輯

測試檔︰[attach]30574[/attach]
檔案內增加工作表後,再將2個工作表的第一列增加顏色標示
當檔案名稱日期=DATA!A欄日期時,則將該檔案內各工作表之B$1︰AX$1有出現= DATA!D︰J的數字標示底色(= D︰I 標示6號底色; = J標示4號底色)。

請問︰VBA語法要如何增寫?
謝謝幫忙!
作者: Scott090    時間: 2019-5-12 13:51

回復 1# ziv976688

      請參考 :
  http://forum.twbts.com/viewthrea ... p;extra=&page=5
    43#

  謝謝
作者: Scott090    時間: 2019-5-12 14:10

回復 1# ziv976688

     建議版主把自己的程式 PO 出來,可以互相學習,
      也較容易找出問題在哪裡。
作者: ziv976688    時間: 2019-5-12 16:29

回復 3# Scott090

我不會寫VBA,只是想請教以你的解答再增加第1列的需求,應該如何增寫?
謝謝你!
作者: ziv976688    時間: 2019-5-12 16:53

本帖最後由 ziv976688 於 2019-5-12 16:55 編輯

回復 2# Scott090
有看到下列2段程式碼:
FinishCatFile:
      With shSample
            .[b2].Resize(colorNo, colNo) = arDATA
            .Range(.[A1], .[AZ1]).Interior.ColorIndex = 0
            GoSub HasTheData
            
ColoringFields:
            For i = 1 To 7    '(D、E、F、G、H、I、J)
                  If i < 7 Then .Cells(1, xNumber(1, i) + 1).Interior.ColorIndex = 6 Else .Cells(1, xNumber(1, i) + 1).Interior.ColorIndex = 8
            Next
            
            .Copy
      End With



HasTheData:
      xDate = Format(Mid(Cat, 2, 10), "yyyy/m/d")
      With ThisWorkbook.Sheets("總表")
            RowNo = 0
            RowNo = .[A:A].Find(xDate, Lookat:=xlPart).Row  
            If RowNo <> 0 Then xNumber = .Range(.Cells(RowNo , "D"), .Cells(RowNo , "J")).Value  
      End With          'end of numbers getting

但不知道要如何修改和插入的位列?
請你指教!謝謝你!

作者: Scott090    時間: 2019-5-13 22:06

回復 5# ziv976688

   請核對是否所需:
     [attach]30598[/attach]

    好奇的問,同樣的東西好像有幾個人在問,這是甚麼東西?
作者: ziv976688    時間: 2019-5-13 23:47

回復 6# Scott090
感謝指導!
應該是下載了同樣的統計App
作者: ziv976688    時間: 2019-5-14 02:13

回復 6# Scott090
[attach]30605[/attach]
請問S大:
當DATA!A欄日期=檔案日期,但=DATA!A欄日期的D:J是""(沒有數字)時,則也能繼續執行完成增加"前三小"的工作表和索引標籤標示黃色的需求。
只是工作表的第一列沒有再標示黃色和綠色(EX:2019-05-07)-Ans。
程式碼要怎麼修正?
謝謝你!

測試檔:[attach]30606[/attach]
作者: Scott090    時間: 2019-5-14 10:51

回復 8# ziv976688

     請加入紅色自 的 指令,用以避開有空白碼的錯誤:
     For i = 1 To 7    '(D、E、F、G、H、I、J)
                  If xNumber(1, i) <> "" Then
                        j = Rng.Find(xNumber(1, i), LookIn:=xlValues, searchorder:=xlByColumns).Column
                        If i < 7 Then .Cells(1, j).Interior.ColorIndex = 6 Else .Cells(1, j).Interior.ColorIndex = 4
                  End If
            Next
作者: ziv976688    時間: 2019-5-14 12:04

回復 9# Scott090
感謝修正!
再次謝謝你的幫忙!
作者: ziv976688    時間: 2019-5-16 21:58

回復 9# Scott090
測試檔 :  [attach]30618[/attach]
請教一下:
在列65插入   If xNumber(1, i) <> "" Then
在列68插入  End If
當天(0513)測試是OK的。

但今天(0516)測試同樣的攩案,卻跑出下列的情況 :
[attach]30616[/attach]        [attach]30617[/attach]

請問:程式碼列59要怎麼修正?謝謝你!
作者: ziv976688    時間: 2019-5-17 04:22

本帖最後由 ziv976688 於 2019-5-17 04:29 編輯

回復 9# Scott090
Scott090大大 :
11樓的發言請忽略。謝謝!
比對了一夜,終於知道原因了。
等全部整理好之後再一併請教!
謝謝您!
作者: ziv976688    時間: 2019-5-17 05:56

回復 9# Scott090
Scott090大大 :
重新製作新的測試檔,又全部測試成功~忙了1個通霄~有點啼笑皆非
11樓和12樓的發言請全部忽略。謝謝!
一再打擾你,尚請見諒!
謝謝您!

作者: Scott090    時間: 2019-5-18 12:09

回復 13# ziv976688


    既然問題已解決,能否告知是何原因造成困擾,以便學習

      謝謝
作者: ziv976688    時間: 2019-5-18 16:53

本帖最後由 ziv976688 於 2019-5-18 16:55 編輯

回復 14# Scott090
與問題的是否解決無關^^"
是我偷懶,以手動更改測試過的檔案的日期和工作表日期(二個日期相同),再將前3小的工作表刪除,作為新的測試檔案,因而發生11樓的狀況~理論上應該是不會才對,但就是發生了。
總之~後來都用程式主檔跑出來的初始檔案作為測試檔案,就都沒有問題了。
不好意思,打擾你了
作者: Scott090    時間: 2019-5-19 06:05

回復 15# ziv976688


    那可能需要預先做一些防犯錯誤的程式,以免程式當掉而懸在空中,
    但必須事先要有可能錯誤的情境發想才行。
作者: ziv976688    時間: 2019-5-21 06:13

回復 16# Scott090

我對VBA完全不熟悉,所以只能取論壇上前輩所發問的或解答的題目來用:funk:
因此事先對防錯的愈想情境我是無能為力,只能事後抓漏,試試看有沒有除錯的可能。

本題我的除錯想法:是不是可以將"此檔案已處理過前3小"的相關程式碼,改為"已處理過的前3小刪除,重新再複製前3小的工作表"~
但不知會不會很麻煩及能否有效除錯?
請你依實際狀況,再決定是否另作修改?謝謝您:D

還有 :
下列的發問題,如果你不嫌棄,請你再次幫忙
http://forum.twbts.com/thread-21773-1-1.html
謝謝你!
作者: Scott090    時間: 2019-5-21 11:29

回復 17# ziv976688


    可以把 工作頁"前三小"刪除, 刪除後執行程式試試看
作者: ziv976688    時間: 2019-5-21 13:00

回復 18# Scott090

只手動刪除"前3小"工作表,再重新執行~原本就沒問題的^^
就這樣子囉~我自己不行也不懂VBA,實在不好意思一直麻煩你。
感謝你耐心的指導




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)