討論區快速選單
知識庫快速選單
程式設計俱樂部Facebook粉絲團 最紅的App開發語言:Kotlin
[ 回上頁 ] [ 討論區發言規則 ]
請問在excel巨集中如何設定自動抓取sheet裡的最後一筆
更改我的閱讀文章字型大小
作者 : resamond(燕子) 人氣指數超過10000點
[ 貼文 33 | 人氣 12516 | 評價 0 | 評價/貼文 0 | 送出評價 2 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/7/29 下午 06:00:48
我需要弄一個巨集
能夠自動在excel 中裡的sheet裡
取每一個sheet的資料
但因為每個sheet的record數不一定
所以不能寫死,用自動錄的是寫死的

如我要抓取A 欄中的記錄
本來有找到一個可能函數
range("A1",Range("A1").End(exdown))
可是這樣它竟然就抓到65536筆記錄去了
好像就跑到excel裡所能存的最多筆數去了
我要的資料其實才一百多筆而已

所以我想請問有無函數可以抓取最後一筆有資料的record在那一列
如果可以的話最好能夠知道列數
這樣在設range就很方便了
作者 : 168(阿戊) Visual Basic一代宗師貼文超過2000則
[ 貼文 2957 | 人氣 7614 | 評價 11710 | 評價/貼文 3.96 | 送出評價 99 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/7/31 下午 04:59:42
MsgBox "最下一列:" & Sheet1.UsedRange.Rows.Count & vbCrLf _
& "最右一行:" & Sheet1.UsedRange.Columns.Count
作者 : resamond(燕子) 人氣指數超過10000點
[ 貼文 33 | 人氣 12516 | 評價 0 | 評價/貼文 0 | 送出評價 2 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/8/1 下午 10:17:46
其實後來自己東想西想了很久
發現如果不執著於用函數的話
寫個簡單的計數器就可以了
Do While range("A1") <> ""
    i=i+1
Loop
這樣就可以很順利的讀到有最後一筆資料所在的欄位數了
作者 : 168(阿戊) Visual Basic一代宗師貼文超過2000則
[ 貼文 2957 | 人氣 7614 | 評價 11710 | 評價/貼文 3.96 | 送出評價 99 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人resamond註記此篇回應為很有道理 2006/8/1 下午 10:59:37
依經驗...這種方法只適用在連續且資料中無空字串時
中間有一格空字串就破功了...資料量一多在效率上就不ok了..不過會自已想過就值得給泥拍拍手了^^
作者 : resamond(燕子) 人氣指數超過10000點
[ 貼文 33 | 人氣 12516 | 評價 0 | 評價/貼文 0 | 送出評價 2 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/8/2 下午 09:13:59
多謝大大的回答
讓我多知道這樣使用的缺點
當初是沒想到那麼多
因為剛好每個檔內的row都是有資料的
如果是null那就是沒資料了
數量是挺少的
一個檔只有一開始會用到計數器
只有約一百筆記錄
作者 : stanleymm(luckymocha)
[ 貼文 6 | 人氣 242 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2008/11/24 下午 04:39:41
activeCell.End(xlDown).Select
ActiveCell.End(xlToRight).Select

請問這樣是不是就可以跳過中間有空白儲存格了呢?
作者 : allen123(Allen)
[ 貼文 107 | 人氣 0 | 評價 730 | 評價/貼文 6.82 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2008/12/5 下午 04:28:02
試試這個, 可以取得已用範圍的最後一個儲存格的Row Number

ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row
作者 : allen123(Allen)
[ 貼文 107 | 人氣 0 | 評價 730 | 評價/貼文 6.82 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2008/12/5 下午 04:28:11
試試這個, 可以取得已用範圍的最後一個儲存格的Row Number

ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row
作者 : atp_ufo(atp_ufo)
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/5/30 下午 06:43:52
activeCell.End(xlDown).Select
ActiveCell.End(xlToRight).Select

这个方法是最好用的,我的大多数查找最后行列的程序都用这个。
如果要删除中间空行,用如下的程序也很好用。
Function DeleteEmptyrows()
Dim lastRow As Long, r As Long
lastRow = ActiveSheet.UsedRange.Rows.Count
lastRow = lastRow + ActiveSheet.UsedRange.Row - 1
Application.ScreenUpdating = False
For r = lastRow To 1 Step -1
If WorksheetFunction.CountA(Rows(r)) = 0 Then Rows(r).Delete
Next r
End Function
 板主 : 徵求中
 > VB Script - 討論區
 - 最近熱門問答精華集
 - 全部歷史問答精華集
 - VB Script - 知識庫
  ■ 全站最新Post列表
  ■ 我的文章收藏
  ■ 我最愛的作者
  ■ 全站文章收藏排行榜
  ■ 全站最愛作者排行榜
  ■  月熱門主題
  ■  季熱門主題
  ■  熱門主題Top 20
  ■  本區Post排行榜
  ■  本區評價排行榜
  ■  全站專家名人榜
  ■  全站Post排行榜
  ■  全站評價排行榜
  ■  全站人氣排行榜
 請輸入關鍵字 
  開始搜尋
 
Top 10
評價排行
VB Script
1 羅蘋 270 
2 foolface 170 
3 坤哥 80 
4 nono 80 
5 阿戊 70 
6 sorry 60 
7 Kevin 50 
8 紫曰 40 
9 玩家 40 
10 黑天黑地 40 
VB Script
  專家等級 評價  
  一代宗師 10000  
  曠世奇才 5000  
  頂尖高手 3000  
  卓越專家 1500  
  優秀好手 750  
Microsoft Internet Explorer 6.0. Screen 1024x768 pixel. High Color (16 bit).
2000-2018 程式設計俱樂部 http://www.programmer-club.com.tw/
0.078125