返回列表 上一主題 發帖

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

回復 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

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

TOP

回復 14# t8899

由於你的公式有可能傳回空字串,當範圍內沒有任何數值,MAX或LARGE都無法求得最大值
試試看
  1. Sub aaa()
  2. Dim a As Range
  3. Set a=Sheets("She5555555555555et6").Range("ao20:ao350").Find(Application.Max(Sheets("She5555555555555et6").Range("ao20:ao350")))
  4. If Not a Is Nothing Then Sheets("She5555555555555et6").Range("A10") = a.Offset(0, -37)
  5. End Sub
複製代碼
建議上傳檔案來看看
學海無涯_不恥下問

TOP

回復 18# t8899
  1. Sub aaa()
  2. Dim Rng As Range
  3. Set Rng = Sheets("She5555555555555et6").Range("ao20:ao350")
  4. k = Application.Max(Rng)
  5. s = Application.Match(k, Rng, 0)
  6. Sheets("She5555555555555et6").Range("A10") = Rng(s).Offset(0, -37)
  7. End Sub
複製代碼
學海無涯_不恥下問

TOP

        靜思自在 : 唯其尊重自己的人,才更勇於縮小自己。
返回列表 上一主題