返回列表 上一主題 發帖

[發問] 利用儲存格中的部分關鍵字,取出同一列的相關資料

[發問] 利用儲存格中的部分關鍵字,取出同一列的相關資料

想了好久,還是沒頭緒,寫得亂七八糟。附檔中有詳細說明,求解!
test.rar (12.86 KB)
Jess

回復 2# GBKEE


    謝謝G大一次教我三種作法,第一種作法我比較能看得懂。其中的第十八行,如果除數為0的時候,程式會出現除錯,要如何避免這種情形? 還有我要用Rounddown將計算結果無條件取至整數,該如何套用?
Jess

TOP

回復 4# GBKEE
了解
Round、RoundUp、Rounddown 這些函數只能用在公式�媔�?
Jess

TOP

本帖最後由 jesscc 於 2011-9-17 17:43 編輯

回復 6# GBKEE


    這一點我知道
我的疑問是如果我要四捨五入而不是取整數,用Round函數,程式不理我,那我該用什麼函數?
還有一點
  1. Range("O:O") = ""
  2. Dim yRow&
  3. yRow = [E65536].End(xlUp).Row
  4. If yRow < 7 Then Exit Sub
  5. If Range("M7:M" & yRow) = "" And Range("N7:N" & yRow) <> "" And Range("L7:L" & yRow) <> "" Then
  6. Range("O7:O" & yRow).Formula = "=Rounddown(N7*1000/L7,0)"
  7. Else
  8. Range("O7:O" & yRow).Formula = "=M7*L7"
  9. End If
  10. Range("O7:O500").Value = Range("O7:O500").Value
複製代碼
代碼中的第五行,一直出現除錯"型態不符合",And不能這樣連接嗎?
Jess

TOP

回復  jesscc
沒有不理你 是語法錯誤
If Range("M7:M" & yRow) = "" And Range("N7:N" & yRow)  "" And  ...
GBKEE 發表於 2011-9-17 18:59



    G大,抱歉我貼錯了,應該是指同一列的資料,而不是計算所有空白儲存格
If Range("M7:M" & yRow) = "" And Range("M7:M" & yRow).Office(,1) <> "" And Range("M7:M" & yRow).Office(,-1) <> "" Then
Range("O7:O" & yRow).Formula = "=Rounddown(N7*1000/L7,0)"
Else
Range("O7:O" & yRow).Formula = "=M7*L7"
End If
像上面這樣,語法不知錯在哪裡?
Jess

TOP

回復 10# GBKEE


    附上修改後的檔案,請G大操作一下就知道了
test.rar (75.72 KB)
Jess

TOP

本帖最後由 jesscc 於 2011-9-17 22:09 編輯

回復 12# GBKEE


    我的問題就在這裡
搞不懂為什麼用一個物件變數來取代Range,整個判斷式就可以用多個And 連接?

還有前面那個第18行的問題
為什麼這樣可以
Ky.Offset(0, 10) = Int(Ky.Offset(0, 9) * 1000 / Ky.Offset(0, 7))

這樣就不行
Ky.Offset(0, 10) = Rounddown((Ky.Offset(0, 9) * 1000 / Ky.Offset(0, 7)),0)

如果是要四捨五入,這段不知該用什麼函數?
Jess

TOP

回復 14# Hsieh

1.第一個問題還是搞不懂><
2.所有的工作表函數,運用到VBA�堻ㄛO這種轉換方式嗎?
Jess

TOP

了解了。
謝謝 H大和 O大的幫忙。更要謝謝G大,幾乎陪了我一下午的時間幫我解決問題,真的非常感謝!
另外,第一個問題我會再繼續努力找答案的。
Jess

TOP

        靜思自在 : 受人點水之恩,須當湧泉以報。
返回列表 上一主題