close

2269

請問Excel VBA 畫格子抓不到第一個column ?

:「想請教為何以下Function 及用With 在幫資料加框線時會印不到第一個Column ?

要怎麼修改才能符合需求,感謝。

假設資料是A1~H30現在只有B1H30有格子,A1~A30沒有且會跳出型態不符合錯誤。

如果在WithA改成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

 


arrow
arrow
    創作者介紹

    錦子老師 發表在 痞客邦 留言(0) 人氣()