Board logo

標題: [發問] 不等於空白的儲存格畫框線 [打印本頁]

作者: papaya    時間: 2017-10-24 11:32     標題: 不等於空白的儲存格畫框線

  1.   Sub 畫框線()

  2.     Columns("A:B").Select
  3.     Selection.FormatConditions.Delete
  4.     Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlNotEqual, _
  5.         Formula1:="="""""
  6.     With Selection.FormatConditions(1).Borders(xlLeft)
  7.         .LineStyle = xlContinuous
  8.         .Weight = xlThin
  9.         .ColorIndex = xlAutomatic
  10.     End With
  11.     With Selection.FormatConditions(1).Borders(xlRight)
  12.         .LineStyle = xlContinuous
  13.         .Weight = xlThin
  14.         .ColorIndex = xlAutomatic
  15.     End With
  16.     With Selection.FormatConditions(1).Borders(xlTop)
  17.         .LineStyle = xlContinuous
  18.         .Weight = xlThin
  19.         .ColorIndex = xlAutomatic
  20.     End With
  21.     With Selection.FormatConditions(1).Borders(xlBottom)
  22.         .LineStyle = xlContinuous
  23.         .Weight = xlThin
  24.         .ColorIndex = xlAutomatic
  25.     End With
  26. End Sub
複製代碼
各位大大:
我才剛學VBA錄製,請大家不吝指導。感恩!
請問:
上面的"A.B二欄不等於空白的儲存格畫框線"程式碼要如何簡化?
或是
一般的程式碼要如何撰寫?
謝謝!
作者: papaya    時間: 2017-10-25 14:56

本帖最後由 papaya 於 2017-10-25 14:58 編輯

是我的說明不清楚?還是錄製的程式碼不能再簡化?

"小學生"沒有搜索的權力,不僅是初學習者的障礙,也是增加論壇容量負擔的原因之。
假如能讓"小學生"有搜索已解決題的權力,
可能一般的基本問題,就可以藉搜索找到答案,以減輕論壇的容量負載。
作者: naruto018    時間: 2017-10-26 16:50

回復 2# papaya


    參考看看
  1.   Sub 畫框線2()

  2.     Columns("A:B").FormatConditions.Delete
  3.     With Columns("A:B").FormatConditions.Add(Type:=xlCellValue, Operator:=xlNotEqual, _
  4.         Formula1:="=""""")
  5.         With .Borders(xlLeft)
  6.             .LineStyle = xlContinuous
  7.             .Weight = xlThin
  8.             .ColorIndex = xlAutomatic
  9.         End With
  10.         With .Borders(xlRight)
  11.             .LineStyle = xlContinuous
  12.             .Weight = xlThin
  13.             .ColorIndex = xlAutomatic
  14.         End With
  15.         With .Borders(xlTop)
  16.             .LineStyle = xlContinuous
  17.             .Weight = xlThin
  18.             .ColorIndex = xlAutomatic
  19.         End With
  20.         With .Borders(xlBottom)
  21.             .LineStyle = xlContinuous
  22.             .Weight = xlThin
  23.             .ColorIndex = xlAutomatic
  24.         End With
  25.     End With
  26. End Sub
複製代碼

作者: papaya    時間: 2017-10-27 04:18

回復 3# naruto018
不好意思,果然是我的發問不夠準確。

原本我是錄製A,B二欄畫框線,錄製出來的程式碼一大堆;
爬文後,卻見到只要一列程式碼就可以達到目的
  Sub 畫框線()
Range("A:B").Borders.LineStyle = xlContinuous
End Sub

Sub 畫框線()
Columns("A:B").Borders.LineStyle = xlContinuous
End Sub

所以,請問大大:
只要將A,B二欄不是空白的儲存格畫框線,
上面的程式碼要怎麼再編輯?
謝謝您!
作者: papaya    時間: 2017-10-27 04:36

回復 3# naruto018
附上需求的圖片:
[attach]27871[/attach]
作者: naruto018    時間: 2017-10-28 11:38

回復 5# papaya

參考看看
  1. Sub 畫框線3()

  2.     Columns("A:B").FormatConditions.Delete
  3.     With Columns("A:B").FormatConditions.Add(Type:=xlCellValue, Operator:=xlNotEqual, _
  4.         Formula1:="=""""")
  5.         .Borders.LineStyle = xlContinuous
  6.     End With
  7. End Sub
複製代碼
搜尋功能可以多利用Google搜尋
搜尋特定網站
關鍵字+site:網站網址
作者: naruto018    時間: 2017-10-28 12:03

回復 5# papaya


    加註解
  1. Sub 畫框線3()

  2.     Columns("A:B").FormatConditions.Delete '刪除A.B欄格式化條件
  3.     With Columns("A:B").FormatConditions.Add(Type:=xlCellValue, Operator:=xlNotEqual, _
  4.         Formula1:="=""""") '在A.B欄新增一個格式化條件,條件為儲存格不為空白
  5.         .Borders.LineStyle = xlContinuous '設定格式化條件的外框格式
  6.     End With
  7. End Sub
複製代碼

作者: papaya    時間: 2017-10-28 13:17

本帖最後由 papaya 於 2017-10-28 13:19 編輯

回復 7# naruto018
程式碼簡化許多了!
感謝您耐心的加註解和指導!
您提供的資訊很實用,謝謝您^_^
作者: papaya    時間: 2017-10-29 08:45

回復 7# naruto018
不好意思,能不能教我用For...Next
將 <>""的儲存格畫框線。
謝謝您!
作者: papaya    時間: 2017-10-29 20:11

回復 7# naruto018
已找到答案了!謝謝您^^

    Sub 有值儲存格畫框線()

               For Each a In Range("A:B")  'A,B欄有值儲存格畫框線
                 If a <> "" Then a.Borders.LineStyle = xlContinuous
               Next
    End Sub




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