Board logo

標題: 設定格式化條件-粗線 [打印本頁]

作者: LITTLEFAT7048    時間: 2015-11-2 09:46     標題: 設定格式化條件-粗線

以下是小弟的程式:

Private Sub CommandButton1_Click()

   Range("C2:AG3").Select
    Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
        "=WEEKDAY(DATE($AM$1,$AN$1,COLUMN(A:A)),1)=2"
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    With Selection.FormatConditions(1).Borders(xlLeft)
        .LineStyle = xlContinuous
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.FormatConditions(1).Borders(xlRight)
        .LineStyle = xlContinuous
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.FormatConditions(1).Borders(xlTop)
        .LineStyle = xlContinuous
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.FormatConditions(1).Borders(xlBottom)
        .LineStyle = xlContinuous
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .ThemeColor = xlThemeColorAccent6
        .TintAndShade = 0.799981688894314
    End With
    Selection.FormatConditions(1).StopIfTrue = False

End Sub

作用其是只是為了要計算星期日而已,
不過問題在於儲存格的部份!

小弟有去查儲存格的寫法,因為小弟希望右邊那條是黑色粗邊的,
With Selection.FormatConditions(1).Borders(xlRight)
        .LineStyle = xlContinuous
        .TintAndShade = 0
        .Weight = xlThin
End With

於是小弟把上述的
.Weight = xlMedium
失敗!

或者把
.Borders(xlRight)
改成
.Borders(xlEdgeRight)
底下再換成
.Weight = xlMedium
也是失敗!

請問有前輩可以指導一下的嗎?謝謝大家!

目的是希望變成
白底就好,右邊的線是粗線,
然後可以自動套入格式化,這樣每個月才會自己計算。

上述的是有上色,不然不知道有沒有改成功,
等成功之後再把顏色改過。
作者: LITTLEFAT7048    時間: 2015-11-2 10:07

剛才去查了一下。


FormatConditions
物件
屬性
Font
粗體 色彩 ColorIndex FontStyle 斜體 刪除線 底線 無法使用會計底線樣式。
Border
下方 色彩 左 從右 樣式 可以使用下列的框線樣式 (所有其他人不支援): xlNone、 xlSolid、 xlDash、 xlDot、 xlDashDot、 xlDashDotDot、 xlGray50、 xlGray75及xlGray25。 頂端權數 可以使用下列的框線寬度 (所有其他人不支援): xlWeightHairline和xlWeightThin。
Interior
Color ColorIndex Pattern PatternColorIndex

好像沒辦法.....
有其他方式可以自動變粗線嗎?XD...
因為我看上面是Hairline 和Thin 而已。
作者: yen956    時間: 2015-11-2 11:26

[attach]22308[/attach]
作者: 准提部林    時間: 2015-11-4 16:09

With Range("C2:AG3")
   .Columns(1).Borders.LineStyle = 1
   .Columns(1).Borders(xlEdgeRight).Weight = xlMedium
   .Columns(1).Copy
   .Cells.PasteSpecial xlPasteFormats
   .FormatConditions.Delete
   .FormatConditions.Add Type:=xlExpression, Formula1:= _
      "=WEEKDAY(DATE($AM$1,$AN$1,COLUMN(A:A)),1)<>1"
   .FormatConditions(1).Borders(xlRight).Weight = xlThin
End With

反其道而行,全部設為〔右粗線〕,
格式化條件,非〔周日〕者,設〔右細線〕∼∼
作者: LITTLEFAT7048    時間: 2015-11-6 14:42

小弟後面想到一個辦法,底下再加一行
=WEEKDAY(DATE($AM$1,$AN$1,COLUMN(A:A)),1)=2
的數字,就會有 1.2.3....的,
然後如果是1的再去更改那格的儲存格,
用Range去包Cells的,去算i,
Range(Cells(3,i),Cells(33,i))的去算,
大概是這樣,上面的可能是錯誤的cells格數,
只是把另外一個研究的方法寫出來而已,
照上面的做法有成功唷^^...
謝謝版主指教!
作者: yen956    時間: 2015-11-6 17:58

回復 4# 准提部林
好方法, 謝謝指教!




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