Board logo

標題: [發問] excel 巨集無法像excel內建公式一樣嗎? [打印本頁]

作者: PKKO    時間: 2013-8-10 16:20     標題: excel 巨集無法像excel內建公式一樣嗎?

本帖最後由 PKKO 於 2013-8-10 16:22 編輯

例如
IF COUNTA("a1:a7") >5 then
Rows("1:5").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

或者是
dim BB =RANGE("A1")
Rows("1:BB").select

問題一:巨集內無法使用一般EXCEL的內建公式嗎
問題二:Rows內要如何輸入變數(我只知道cells可以)
作者: Hsieh    時間: 2013-8-12 09:12

回復 1# PKKO
了解資料型態的運算,就能知道如何帶入變數
Rows("1:" & BB).select
作者: owen06    時間: 2013-8-12 13:36

回復 1# PKKO

問題一:可以用excel公式,但要在前面加個『application』,然後範圍前要加個range("範圍")

  If Application.CountA(Range("a1:a7")) > 5 Then
作者: PKKO    時間: 2013-8-18 18:29

感謝,受益良多
但想請教
Sub AA()
If Application.CountIf(Range("a1:a7", "2")) > 5 Then
Range("B1") = 5
End If
End Sub

像這種的公式就無法使用嗎?一定要()只選取範圍的才能使用在VBA內嗎
作者: owen06    時間: 2013-8-19 08:11

回復 4# PKKO

我記得沒錯的話,excel裡的公式都能在VBA裡使用,
只是你的公式格式要打對,你改成這樣就能執行了:

If Application.CountIf(Range("a1:a7"), "2") > 5 Then

你就先寫出一般的語法:=COUNTIF(A1:A7,"2"),
但是在VBA裡面範圍需要加個"RANGE",所以就會變成上面的樣子了,
或是嫌麻煩的話直接輸入[A1:A7]也可以取代RANGE。

If Application.CountIf([a1:a7], "2") > 5 Then
作者: oobird    時間: 2013-8-19 09:08

如圖  查看vba支援的工作表函數有那些。
[attach]15803[/attach]
作者: PKKO    時間: 2013-8-19 18:19

感謝各位大大,小弟受益良多
想再請教一個問題
最近看書發現,VBA可以開啟"小算盤"或是任何一個程式(只要知道程式放置位置即可)
但VBA可以間接操作其他軟體嗎?
EX:操作筆記本、EmEditor
作者: p01005    時間: 2015-3-3 18:53

感謝各位大大
小弟是VBA新手
同樣想問VBA是不是可以間接操作其他軟體
因為早前爬文看到有用VBA控制IE來取網上資料
但不太知道是怎樣運作
求各大大解答




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