返回列表 上一主題 發帖

[發問] 指定2列或3列的同欄同時都有數字時,則標示底色的語法

[發問] 指定2列或3列的同欄同時都有數字時,則標示底色的語法

Mark color.png
2019-4-5 03:45

(最後有數字的列 - 2)和(最後有數字的列 - 3)的二列之同欄都<>""時,則標示淡紫底色。

(最後有數字的列 - 2)和(最後有數字的列 - 3)和(最後有數字的列 - 4)的三列之同欄都<>""時,則標示玫瑰紅底色。

請問︰VBA語法要如何編寫?
謝謝幫忙!
測試檔︰
依條件標示底色的語法.rar (6.61 KB)

本帖最後由 准提部林 於 2019-4-6 10:31 編輯

Sub 標示底色()
Dim r&, c&, k%, Km, xE As Range
r = [a1].End(xlDown).Row
c = [a1].End(xlToRight).Column
Km = Array("", 40, 39, 38)
Range([B2], Cells(r, c)).Interior.ColorIndex = 0
For i = 2 To c
    k = 0: Set xE = Cells(r, i)
For j = r To r - 2 Step -1
    If Cells(j, i) = "" Then Exit For Else k = k + 1
Next
    If k > 0 Then xE(-k + 2).Resize(k).Interior.ColorIndex = Km(k)
Next
End Sub
EXCEL參考資料:
http://blog.xuite.net/smile1000mile/blog

TOP

隨意窩 "EXCEL迷"  blog  或 http://blog.xuite.net/hcm19522/twblog
已收集5000篇 EXCEL函數

TOP

回復 2# 准提部林

感謝版主的幫忙。
問題解決了!感恩!

TOP

回復 3# hcm19522


    h大大:
謝謝您的函數解~感恩!

TOP

回復 4# ziv976688

昨天匆匆做, 未再審察, 修正一下:
For j = r To r - 3 Step -1  >>> 3 改成 2 才對
EXCEL參考資料:
http://blog.xuite.net/smile1000mile/blog

TOP

回復 6# 准提部林
版主:您好!
For j = r To r - 3 Step -1
測試過近100個範例,答案都正確,所以沒有發現錯誤^^"

For j = r To r - 2 Step -1
感謝您的修正^^

TOP

本帖最後由 ziv976688 於 2019-4-7 16:14 編輯

回復 6# 准提部林

版主大大:您好!
結論出來了~
For j = r To r - 3 Step -1
當最後4期都有數字時,就會有Bug了~產生偵錯。

For j = r To r - 2 Step -1
當最後4期都有數字時,會如需求將最後3期的數字標示指定的底色。

謝謝您的耐心指導和幫忙!感恩

TOP

本帖最後由 ziv976688 於 2019-4-16 09:16 編輯

回復 6# 准提部林
主檔&測試用檔.rar (12.08 KB)
不好意思,因為工作表的列數不盡相同,所以程式執行後,有產生一些Bug(詳如圖片)。
敬請您賜正!謝謝您!
T_1
T_0.png
2019-4-16 09:10
      
T_2
T_1.png
2019-4-16 09:11
      
T_3
T_2.png
2019-4-16 09:12
      
T_3.png
2019-4-16 09:12

TOP

回復 9# ziv976688

Sub 標示底色()
Dim r&, c&, k%, Km, U&, xE As Range
If IsDate([A2]) = False Then Exit Sub
r = [A1].End(xlDown).Row
c = [A1].End(xlToRight).Column
Km = Array("", 40, 39, 38)
Range([B2], Cells(r, c)).Interior.ColorIndex = 0
U = r - 2: If U > 2 Then U = 2
For i = 2 To c
    k = 0: Set xE = Cells(r, i)
For j = r To r - U Step -1
    If Cells(j, i) = "" Then Exit For Else k = k + 1
Next
    If k > 0 Then xE(-k + 2).Resize(k).Interior.ColorIndex = Km(k)
Next
End Sub
EXCEL參考資料:
http://blog.xuite.net/smile1000mile/blog

TOP

        靜思自在 : 要比誰更受誰.不要比誰更怕誰。
返回列表 上一主題