返回列表 上一主題 發帖

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

本帖最後由 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

回復 7# t8899


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

TOP

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

回復 11# t8899

二種方式:
  1. Sub aaa()
  2. a = Sheets("She5555555555555et6").Range("ao20:ao350").Find(Application.Max(Sheets("She5555555555555et6").Range("ao20:ao350"))).Address
  3. Sheets("She5555555555555et6").Range("A10") = Sheets("She5555555555555et6").Range(a).Offset(0, -37)
  4. End Sub
複製代碼
不然就是要
  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. Sheets("She5555555555555et6").Range("A10") =a.Offset(0, -37)
  5. End Sub
複製代碼
第二種方式因為有定義a的範圍了,所以不需要在a前面特定指出sheetx,他就能去找到他的位置了。

附檔你試試看,我做是都沒問題呀。

Book1.rar (16.19 KB)

TOP

回復 14# t8899


    剛才試了一下之前的程式,發現FIND後面如果沒有補上, , xlValues, xlWhole
    在你的公式下找出來的值會不是正確解答,我依照你的公式去模擬了一個檔案,你看看內容再去改修你的檔案,
    希望能夠解決你的問題。

Book1.rar (18.29 KB)

TOP

回復 20# t8899


   試了一下覺得不是公式的問題,而是儲存格格式的問題,
   但不知道是何原因造成系統認定該範圍的儲存格格非為一般的數值格數,
   因而在vba裡會找不到物件。

TOP

        靜思自在 : 忘功不忘過,忘怨不忘恩。
返回列表 上一主題