Board logo

標題: [發問] 請教各位前輩在程式公式中要如何取得欄位最後列數 [打印本頁]

作者: lamihsuen    時間: 2012-6-21 05:28     標題: 請教各位前輩在程式公式中要如何取得欄位最後列數

本帖最後由 lamihsuen 於 2012-6-21 05:30 編輯

For wr = 4 To Worksheets.Count
Worksheets(wr).Range("A3").Formula = "=COUNT(B6:B51)"
Worksheets(wr).Range("J3").Formula = "=AVERAGE(B6:B51)"
next wr
上列中 "=COUNT(B6:B51)"因為每一個工作表中的"B51"不確定因此在此公式中如何取得"B"欄的最後列數
作者: GBKEE    時間: 2012-6-21 05:54

回復 1# lamihsuen
  1. Sub Ex()
  2.     Dim wr, xlRow As Integer
  3.     For wr = 4 To Worksheets.Count
  4.         With Worksheets(wr)
  5.             xlRow = .Range("B" & .Rows.Count).End(xlUp).Row
  6.             .Range("A3").Formula = "=COUNT(B6:B" & xlRow & ")"
  7.             .Range("J3").Formula = "=AVERAGE(B6:B" & xlRow & ")"
  8.         End With
  9.     Next wr
  10. End Sub
複製代碼

作者: lamihsuen    時間: 2012-6-21 18:29

謝謝 GBKEE 大哥的幫忙.問題已解決,是否可再幫忙,解釋一下
"xlRow = .Range("B" & .Rows.Count).End(xlUp).Row"
這段式程的語法
另外再請問如何產生程式左邊的號碼?
再次謝謝你!
作者: GBKEE    時間: 2012-6-22 07:00

回復 3# lamihsuen
"xlRow = .Range("B" & .Rows.Count).End(xlUp).Row"
.Rows.Count  :傳回 列的總數  
Rows 屬性  傳回 Range 物件(範圍)的所有列的集合。
Count 屬性 傳回一個 Long (長整數),等於在一個集合物件中的物件數目。唯讀。
End 屬性    該物件代表包含來源範圍之區域結尾處的儲存格。等於按 END+向上鍵 (xlUp)、END+向下鍵(xlDown)、END+向左鍵(xlToLeft)、 END+向右鍵(xlToRight)
END+向上鍵 (xlUp)、END+向下鍵(xlDown)、END+向左鍵(xlToLeft)、 END+向右鍵(xlToRight)
Row 屬性   傳回列的號數。唯讀 Long。
作者: lamihsuen    時間: 2012-6-22 17:08

回復 4# GBKEE

非常感謝大哥前輩的解說.真的受益退良多
作者: hugh0620    時間: 2012-6-22 18:18

回復 4# GBKEE


    G大大~
                    xlRow = .Range("B" & .Rows.Count).End(xlUp).Row
                    這句其實用
                     xlRow = .Range("B65536").End(xlUp).Row
                    會否更直覺一點呢??
作者: oobird    時間: 2012-6-22 19:24

回復 6# hugh0620


    2003以前最大列是65536,這是假設用的不一定哪個版本。
作者: ck00    時間: 2012-6-22 19:31

worksheetfunction.CountA([D])
應該可以吧,前提要整列也没有空格才計到喔
作者: ck00    時間: 2012-6-22 19:33

回復  hugh0620


    2003以前最大列是65536,這是假設用的不一定哪個版本。
oobird 發表於 2012-6-22 19:24



    他的表格應該没這MO重吧;P

2010版是一百萬,對不?
作者: lamihsuen    時間: 2012-6-23 18:01

本帖最後由 lamihsuen 於 2012-6-23 18:11 編輯

回復 6# hugh0620
第一次表格最多只有100列,然後要把第一表格篩選符合出的資料列複製到往一下的表格,但第一次表格資料還要保留,因此我還要請問?
Worksheets(4).Range("A1").Value   儲存格式已設定數值格式,
Dim I As Integer
I = 6 + (Worksheets(4).Range("A1").Value) + 3 請問語法有錯誤嗎?
因為執行時會顯示型態不符的錯誤訊息
謝謝各位大哥幫忙
PS  :   xlRow = .Range("B" & .Rows.Count).End(xlUp).Row
下一次表格是否還可繼續使用下去?




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