返回列表 上一主題 發帖

[發問] 請教此程序錯在何處,如何改 ??

[發問] 請教此程序錯在何處,如何改 ??

Sub BBB()
A = Application.Large(Sheets("Sheet6").Range("ao20:ao350"), 1)
Sheets("Sheet6").Range("A10").Value = A.Offset(0, -37)
End Sub

A返回的是區間中最大數值,是數值而非該數值所在的儲存格
而offset函數必先指定一個儲存格或範圍(物件)再去取得其位移參照
若指定的是一個數值而非物件,就會因找不到物件而發生錯誤

試試以下敘述

Sheets("Sheet6").[a10] = Sheets("Sheet6").[d19].Offset(WorksheetFunction.Match(Application.Large(Sheets("Sheet6").Range("ao20:ao350"), 1), Sheets("Sheet6").Range("ao20:ao350"), 0), 0)
My Blog
http://blog.xuite.net/a8350070

TOP

A返回的是區間中最大數值,是數值而非該數值所在的儲存格
而offset函數必先指定一個儲存格或範圍(物件)再去 ...
a8350070 發表於 2014-3-19 22:15

試過可以,但參數太多,看不太懂?有無較易懂的解法?

TOP

回復 3# t8899

A = Application.Large(Sheets("Sheet6").Range("ao20:ao350"), 1)

這樣得到的是區間最大值,是個數值,並非儲存格物件
試試
set a=Sheets("Sheet6").Range("ao20:ao350").find(application.max(Sheets("Sheet6").Range("ao20:ao350")))
學海無涯_不恥下問

TOP

回復  t8899

A = Application.Large(Sheets("Sheet6").Range("ao20:ao350"), 1)

這樣得到的是區間最 ...
Hsieh 發表於 2014-3-20 08:28


Application.Large
application.max
這兩個有差別嗎???

TOP

本帖最後由 owen06 於 2014-3-20 09:45 編輯

回復 3# t8899
  1. Sub BBB()
  2. A = [ao20:ao350].find(Application.Large(Sheets("Sheet6").Range("ao20:ao350"), 1),,,xlwhole).address
  3. Sheets("Sheet6").Range("A10").Value = range(A).Offset(0, -37)
  4. End Sub
複製代碼
max只能取最大,large能選擇要第幾大,差別在這

TOP

回復  t8899 max只能取最大,large能選擇要第幾大,差別在這
owen06 發表於 2014-3-20 09:39

large 即已包含max  , 就無須max 啊

TOP

回復 7# t8899


是這麼說沒錯啦,   
但如果你只是要最大值,就可以直接用MAX,公式比較簡短一點,
MAX(RANGE)
LARGE(RANGE,1)
恩,真的只有一點…

TOP

回復  t8899 max只能取最大,large能選擇要第幾大,差別在這
owen06 發表於 2014-3-20 09:39

剛試了一下,沒有設定物件變數??

TOP

回復 9# t8899
問題就只是沒有使用Set設置變數為物件
MAX與LARGE函數你喜歡用哪個沒關係啦
學海無涯_不恥下問

TOP

        靜思自在 : 天上最美是星星,人生最美是溫情。
返回列表 上一主題