返回列表 上一主題 發帖

[發問] 向右尋找最後一格有格線的儲存格

[發問] 向右尋找最後一格有格線的儲存格

各位大大好

向右尋找最後一格有"畫格線"的儲存格 語法要怎寫
sub 123()
Dim L%
L = Range("A9").End(xlToRight).Borders.LineStyle
end sub

這樣好像不太對

请大大指教了^*^

本帖最後由 kimbal 於 2012-7-18 22:21 編輯

sub 123()
    Dim L%
    For Each c In Range(Range("A9"), Range("A9").End(xlToRight))
        If c.Borders.LineStyle <> xlNone Then
            L% = c
        End If
    Next
end sub

下面的複雜一些但會快少許
Sub test()
    Dim L%
    Dim i
    With Range(Range("A9"), Range("A9").End(xlToRight))
        For i = .Cells.Count To 1 Step -1
            If .Cells(i).Borders.LineStyle <> xlNone Then
                L% = .Cells(i)
                Exit For
            End If
        Next
    End With
End Sub
懂得發問,答案就會在其中

今日の一秒は  明日にない
http://kimbalko-chi.blogspot.com
http://kimbalko.blogspot.com

TOP

本帖最後由 smouse0220 於 2012-7-31 23:46 編輯
  1. X=worksheets(1).cells(1,256).end(xltoleft).column
複製代碼
你可以參考上述的程式碼

要計算從右到左 或是 從左到右 的問題點
是卡在『Range,所以要改用Cells比較方便』
原因是大家都知道Excel 最多能夠65536 行
那最多幾列呢?
答案是256列
那如果256列轉換成range..有點困難

所以我用Cells(1,256).end(xltoleft).column
計算第一行從右到左,第一個有字串的列數

TOP

  1. Sub FindFormatDemo()
  2.     Application.FindFormat.Borders.LineStyle = 1
  3.     Set c = Rows(9).Find(What:="", After:=[a9], SearchOrder:=2, SearchDirection:=2, SearchFormat:=True)
  4.     If Not c Is Nothing Then MsgBox c.Address
  5.     End Sub
複製代碼

TOP

        靜思自在 : 要比誰更受誰.不要比誰更怕誰。
返回列表 上一主題