Board logo

標題: 判定然後畫上邊框的問題 [打印本頁]

作者: kitjai112    時間: 2015-2-21 17:50     標題: 判定然後畫上邊框的問題

請問各位如何可以判定儲存格的數值,
然後令到其他格出現粗邊框?

比如A1格 >0,然後C2-C6就出現上邊框
如果A1=0,C2-C6就不出現邊框
作者: lpk187    時間: 2015-2-21 18:41

回復 1# kitjai112
  1. Sub 巨集1()
  2. Range("C1:E1").Borders.LineStyle = xlContinuous '連續線
  3. Range("C3:E3").Borders.LineStyle = xlDash '虛線
  4. Range("C5:E5").Borders.LineStyle = xlDashDot '交替的虛線與點
  5. Range("C7:E7").Borders.LineStyle = xlDashDotDot '虛線後接兩點
  6. Range("C9:E9").Borders.LineStyle = xlDot '點狀線
  7. Range("C11:E11").Borders.LineStyle = xlDouble '雙線
  8. Range("C13:E13").Borders.LineStyle = xlLineStyleNone '無線條
  9. Range("C15:E15").Borders.LineStyle = xlSlantDashDot '斜虛線
  10. End Sub
  11. '給你參考
複製代碼

作者: lpk187    時間: 2015-2-21 18:49

回復 1# kitjai112

Range("C17:E17").Borders(xlDiagonalDown).LineStyle = xlSlantDashDot '()中的則是要劃框線的哪一邊
'名稱                              值          描述
'xlDiagonalDown       5           從範圍內各儲存格左上角延伸到右下角的框線
'xlDiagonalUp            6           從範圍內各儲存格左下角延伸到右上角的框線
'xlEdgeBottom           9           位於範圍底部的框線
'xlEdgeLeft                  7           位於範圍左緣的框線
'xlEdgeRight              10          位於範圍右緣的框線
'xlEdgeTop                 8            位於範圍頂端的框線
'xlInsideHorizontal  12           範圍中所有儲存格的水平格線,但超出範圍的框線除外
'xlInsideVertical       11           範圍中所有儲存格的垂直框線,但超出範圍的框線除外
作者: kitjai112    時間: 2015-2-21 19:11

回復  kitjai112

Range("C17:E17").Borders(xlDiagonalDown).LineStyle = xlSlantDashDot '()中的則是要 ...
lpk187 發表於 2015-2-21 18:49


謝謝!那麼要做到在A1格輸入>0的數值時才出現線要怎樣寫?
作者: lpk187    時間: 2015-2-21 19:45

回復 4# kitjai112


    寫公式函數我不會底下都是VBA執行的
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2. If Target.Address = Range("A1").Address Then
  3.     If Range("A1") > 0 Then
  4.             Range("C2:C6").Borders.LineStyle = xlContinuous '連續線
  5.         Else
  6.             Range("C2:C6").Borders.LineStyle = xlLineStyleNone '無枉線
  7.         End If
  8. End If
  9. End Sub
複製代碼

作者: lpk187    時間: 2015-2-21 19:54

回復 4# kitjai112
又或則這樣
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2.     If Range("A1") > 0 Then
  3.             Range("C2:C6").Borders.LineStyle = xlContinuous '連續線
  4.         Else
  5.             Range("C2:C6").Borders.LineStyle = xlLineStyleNone '無枉線
  6.         End If
  7. End Sub
複製代碼

作者: lpk187    時間: 2015-2-21 20:01

回復 4# kitjai112
上面第一個是要在[A1]輸入數值才有變化
第二個則是只要在同一張任何一個儲存格變化才有變化,下面這個則是只要自動計算啟動時就會有變化
  1. Private Sub Worksheet_Calculate()
  2.     If Range("A1") > 0 Then
  3.             Range("C2:C6").Borders.LineStyle = xlContinuous '連續線
  4.         Else
  5.             Range("C2:C6").Borders.LineStyle = xlLineStyleNone '無枉線
  6.     End If
  7. End Sub
複製代碼

作者: kitjai112    時間: 2015-2-22 00:42

啊謝謝你!但為甚麼會出現「引數不是選擇性的」?
作者: lpk187    時間: 2015-2-22 01:35

回復 8# kitjai112


    應該是你貼錯地方了,以上的SUB全都是Worksheet的事件程序中!




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