Board logo

標題: [發問] 向右尋找最後一格有格線的儲存格 [打印本頁]

作者: alex520188    時間: 2012-7-18 19:27     標題: 向右尋找最後一格有格線的儲存格

各位大大好

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

這樣好像不太對

请大大指教了^*^
作者: kimbal    時間: 2012-7-18 22:05

本帖最後由 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
作者: smouse0220    時間: 2012-7-31 23:43

本帖最後由 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
計算第一行從右到左,第一個有字串的列數
作者: oobird    時間: 2012-8-1 08:28

  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
複製代碼





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