返回列表 上一主題 發帖

COUNTA 或某些函數在VBA上使用的疑問

COUNTA 或某些函數在VBA上使用的疑問

Dear 大大們

      小弟在VBA撰寫有關函數部份的程式碼時,都會有一個問題
      就是在SHEET1讀取SHEET2的資料時,會讀不到,例如附件中的COUNTA這個函數

      能否請大大講解一下,問題是什麼??? 其函數在VBA上撰寫的基本觀念為何?? 好讓小弟可以學習~


         在VBA內使用COUNTA函數測試.rar (8.23 KB)

回復 13# asus103


    這是大大貼的網址~ 怕有人找不到那段解釋的文字~ 特地貼出來~

1. 注意 Match 是工作表函數的成員而不是VBA內建函數,所以需指明上層物件。
WorksheetFunction 的標準寫法是 Application.WorksheetFunction。

2. 注意你的程式位於一般模組還是物件模組。
一般模組:
在一般模組 (就是 Module1、Module2.. 那些) 裡是可以省略 Application 的。
(省略 Application 就不能省略 WorksheetFunction,意思就是不能只寫函數名稱)
物件模組:
但在物件模組裡就不能省略 Application 了,
因為物件模組預設的物件是該物件本身,
例如 Worksheet 模組的預設物件是 Worksheet;
UserForm 模組的預設物件就是 UserForm。由此可知,
若在 UserForm1 模組寫 WorksheetFunction (省略了 Application),
VBA 會視為 UserForm1.WorksheetFunction,結果就會出錯了。
學習才能提升自己

TOP

學海無涯_不恥下問

TOP

我也學到了,謝謝.

TOP

回復 2# Hsieh
請問一下版主大大
為什麼是用Application.CountA(Sheet2.[A7:A65536])
而不是用WorksheetFunction.CountA(Sheet2.[A7:A65536])
我在說明中只有看到下者
他們(Application和WorksheetFunction)之間都可以通用嗎?
還是有其它的限制
ASUS

TOP

若單純要利用 Excel 的函數也可以用 WorksheetFunction.CountA 的方式哦~~

TOP

回復 10# hugh0620
Sub Ex()
Dim W%
W=10
Sheet1.Cells(4, 2) = Application.CountA(Sheet1.Range("A" & W & ":A65536"))
End Sub

TOP

回復 9# GBKEE

   謝謝大大~ 幫我解決 (我自己試了老半天都無法解決):L
學習才能提升自己

TOP

回復 8# hugh0620
Sheet1.Cells(4, 2) = Application.CountA(Sheet1.[A22:A65536])                       '不接受變數
Sheet1.Cells(4, 2) = Application.CountA(Sheet1.Range("A" & W & ":A65536")) '接受變數

TOP

回復 3# GBKEE


    Dear 大大

        小弟想要再請問一個問題
        若是我在用COUNTA去統計時,若我的區間是不一定的時候,就會有問題
           一般正常的寫法是
        Application.CountA(Sheet2.[E22: E65536]) [固固區間進行統計)
           若我已W是一個Row的數值(亦即是該儲存格是在第幾列)        
        Application.CountA(Sheet2.[E&W: E65536]) [改變成可浮動區間進行統計]

           請大大教導我

            COUNTA進階問題_20110106.rar (9.5 KB)
學習才能提升自己

TOP

        靜思自在 : 謊言像一朵盛開的鮮花,外表美麗,生命短暫。
返回列表 上一主題