返回列表 上一主題 發帖

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

回復 10# GBKEE


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

TOP

回復 11# jesscc
用 R1C1 表示法
  1. Sub Test1()
  2.     Dim KY As Range
  3.     With Sheets("Sheet2")
  4.         If .Range("E7").End(xlDown).Row = Rows.Count Then Exit Sub
  5.             For Each KY In .Range(.[E7], .[E7].End(xlDown)).Offset(, 8)  'M欄
  6.                 If KY = "" And KY.Offset(, 1) <> "" And KY.Offset(, -1) <> "" Then
  7.                     KY.Offset(, 2) = "=Rounddown(RC[-1]*1000/RC[-3],0)"
  8.                 Else
  9.                     KY.Offset(, 2) = "=RC[-2]*1000/RC[-3]"
  10.                 End If
  11.                     KY.Offset(, 2) = KY.Offset(, 2).Value
  12.             Next
  13.     End With
  14. End Sub
複製代碼

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

本帖最後由 Hsieh 於 2011-9-17 23:07 編輯

回復 13# jesscc

Rounddown是工作表函數
Ky.Offset(0, 10) = Application.Rounddown((Ky.Offset(0, 9) * 1000 / Ky.Offset(0, 7)),0)
學海無涯_不恥下問

TOP

回復 14# Hsieh

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

TOP

可以拖動這個下拉清單,查看VBA支援的工作表函數

TOP

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

TOP

        靜思自在 : 生氣,就是拿別人的過錯來懲罰自己。
返回列表 上一主題