我有一個從 A 列到 M 列的表格,我每天都會在其中輸入新的資料行。我有一個宏,它使我能夠突出顯示列 I 中的選定單元格并將總和到列 J,包括合并。但是,我想在觸發宏后從 A 列到 M 列添加“厚底邊框”。此外,如果選擇單元格將轉到下方的 C 列 1 行以加快資料輸入,則更好。
下圖供您參考:

預期結果:

Sub Macro6()
'
' Macro6 Macro
'
' Keyboard Shortcut: Ctrl l
Dim mergeCells As Range
Set mergeCells = selection.Offset(, 1)
With mergeCells
.Merge
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = True
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.Formula = "=SUM(" & selection.Address & ")"
End With
End Sub
uj5u.com熱心網友回復:
如果您運行宏記錄器并添加邊框,您應該得到以下內容:
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlMedium
End With
現在您知道如何添加邊框,您只需要指定范圍。
一種方法是獲取您選擇的最后一行。這可以通過查看起始行、所選行的數量,然后減去一個來完成,因為我們實際上是對第一行計數兩次。
lrow = Selection.Row Selection.Rows.Count - 1
由于您想要的范圍始終相同,因此可以輕松地對其進行硬編碼,方法是使用&.
Sub Macro6()
'
' Macro6 Macro
'
' Keyboard Shortcut: Ctrl l
Dim lRow as Long
Dim mergeCells As Range
Set mergeCells = selection.Offset(, 1)
With mergeCells
.Merge
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = True
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.Formula = "=SUM(" & selection.Address & ")"
End With
lRow = Selection.Row Selection.Rows.Count - 1
With Range("A" & lRow, "M" & lRow).Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlMedium
End With
End Sub
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/370761.html
上一篇:使用十進制數訪問編號相同的欄位
下一篇:將列名添加到csv檔案的行名
