想請教為何以下function 及用with 在幫資料加框線時會印不到第一個column ?
要怎麼修改才能符合需求,感謝
假設資料是A1~ H30 現在只有B1到H30 有格子,A1~A30 沒有且會跳出型態不符合錯誤。
如果在With中A改成A1但錯誤訊息會變成應用程式或物件定義上的錯誤,我按了偵錯會停在with wks2.Columns 這行,我確認LastRow是有抓到值的,游標指到LastRow 顯示LastRow=34
Function getlastrow() As Long '找到最后一列-資料範圍
Dim lngReturn As Long
Dim wks2 As Worksheet
Set wks2 = Worksheets(2)
lngReturn = wks2.Range("A2").End(xlDown).Row
getlastrow = lngReturn
End Function
LastRow = getlastrow
With wks2.Columns("A:H" & CStr(LastRow)) '調整儲存格範圍
.HorizontalAlignment = xlCenter '文字置中對齊
.VerticalAlignment = xlCenter
.Font.Name = "calibri" '字型
.Font.Size = 10 '字型大小
.Borders().LineStyle = xlNone '儲存格框線的線條樣式
.Borders().Weight = xlThin '儲存格框線粗細設定
End With
選我正解
Dim wks2 As Worksheet
Function getlastrow() As Long '找到最后一列-資料範圍
Dim lngReturn As Long
Set wks2 = Worksheets(1)
lngReturn = wks2.Range("A2").End(xlDown).Row
getlastrow = lngReturn
End Function
Sub Main()
LastRow = getlastrow
'範圍要用 Range
With wks2.Range("A1:H" & LastRow)
.HorizontalAlignment = xlCenter '文字置中對齊
.VerticalAlignment = xlCenter
.Font.Name = "calibri" '字型
.Font.Size = 10 '字型大小
.Borders().LineStyle = xlNone '儲存格框線的線條樣式
.Borders().Weight = xlThin '儲存格框線粗細設定
End With
'Columns 是指整「欄」,只要英文字母即可
With wks2.Columns("A:H") '調整儲存格範圍
.HorizontalAlignment = xlCenter '文字置中對齊
.VerticalAlignment = xlCenter
.Font.Name = "calibri" '字型
.Font.Size = 10 '字型大小
.Borders().LineStyle = xlNone '儲存格框線的線條樣式
.Borders().Weight = xlThin '儲存格框線粗細設定
End With
End Sub
發生型態不符錯誤應該是因為這裡
wks2.Columns("A:H" & CStr(LastRow))
試試看改成
With wks2.Range("A1:H" & LastRow) '調整儲存格範圍
.HorizontalAlignment = xlCenter '文字置中對齊
.VerticalAlignment = xlCenter
.Font.Name = "calibri" '字型
.Font.Size = 10 '字型大小
.Borders().LineStyle = xlNone '儲存格框線的線條樣式
.Borders().Weight = xlThin '儲存格框線粗細設定
End With