找出每個工作表的最後一列方法http://tw.myblog.yahoo.com/libraersaint-ydns333/article?mid=38&prev=337&next=24&l=f&fid=1

要找出每個工作表的最後一列,有很多方法
但要看工作表本身的內容
我大該列出有下列方式,可找到lastrow的方法,但每種方法在不同的工作環境中得到的結果也不盡相同
lastrow = Sheet1.UsedRange.Rows.Count
lastrow = Sheet1.[A1].End(xlDown).Row
lastrow = Sheet1.[A65536].End(xlUp).Row
lastrow = Sheet1.Cells.SpecialCells(xlCellTypeLastCell).Row
lastrow = Sheet1.Range("A1").CurrentRegion.Rows.Count
lastrow = Cells.Find(What:="*", After:=[A1], SearchDirection:=xlPrevious).Row
用法如下
Private Sub CommandButton1_Click() '輸入按鈕
lastrow = Range("a65536").End(xlUp).Row '有資料最後一列
Sheets("A").Cells(lastrow + 1, 1) = TextBox1.Value
Sheets("A").Cells(lastrow + 1, 2) = TextBox2.Value
Sheets("A").Cells(lastrow + 1, 3) = TextBox3.Value
End Sub

Private Sub CommandButton2_Click() '關閉按鈕
Unload UserForm1
End Sub

原作者
DoDo ( 初學者 1 級 )



PART2
Excel VBA 有函數可直接 "解出" "C5:H7" 的列行起點終點 嗎
例如
RRR = "C5:H7"
Range(RRR).select
xx函數(RRR).起始列 ----> 傳回 5
xx函數(RRR).終點列 ----> 傳回 7
xx函數(RRR).起始行 ----> 傳回 3 (C)
xx函數(RRR).終點行 ----> 傳回 8 (H)

Vincent ( 大師 2 級 )的意見
起始列
Range(RRR).Row
結束列
Range(RRR).Row + Range(RRR).Rows.Count - 1
起始欄
Range(RRR).Column
結束欄
Range(RRR).Column + Range(RRR).Columns.Count - 1

MsgBox "最下一列:" & Sheet1.UsedRange.Rows.Count & vbCrLf _
& "最右一行:" & Sheet1.UsedRange.Columns.Count

整體有效資料最底列
ActiveSheet.UsedRange.SpecialCells(xlLastCell).Row


某欄最底列
Cells(Rows.Count, 欄).End(xlUp).Row

例如:
Cells(Rows.Count, 1).End(xlUp).Row
Cells(Rows.Count, 2).End(xlUp).Row
Cells(Rows.Count, "A").End(xlUp).Row
Cells(Rows.Count, "H").End(xlUp).Row
(用數字或字母皆可)
沙拉油 ( 研究生 1 級 )
activecell << 作用中的儲存格
activecell.row << 作用中的儲存格的列號
activecell.column << 作用中的儲存格的欄號
activecell.address << 作用中的儲存格的位址
selection << 選擇的儲存格
selection.areas.count << 選擇的儲存格共有幾個沒有連續的區域
selection.address << 選擇的儲存格的位址
selection.rows.count << 選擇的儲存格的列數,(如果選擇了多區顯示的列數是第一區)
selection.columns.count << 選擇的儲存格的欄數,(如果選擇了多區顯示的欄數是第一區)
arrow
arrow
    全站熱搜

    YOUNG21975 發表在 痞客邦 留言(2) 人氣()