[算表] 自訂函數跨工作表問題

看板Office作者 (空洞)時間7年前 (2018/06/13 18:17), 編輯推噓0(009)
留言9則, 2人參與, 7年前最新討論串1/2 (看更多)
軟體:Excel VBA 版本: 2007 , 2016 各位高手們好 小弟為了工作方便 寫了一個自訂函式想處理日期及進度的內插作業 其函式名稱為workrate 然後輸入的變數為 workrate(partdata As range,ndate As single) (變數都用 ByVal) 然後要取得partdata的位置 part_r = partdata.Row '獲取預定進度資料位置(第1格的row值) part_rcount = partdata.Rows.Count '獲取預定進度資料Row數 part_c = partdata.Column '獲取預定進度資料位置(第1格的column值) 並且設定一個range變數為其資料 Set part_pdate = Range(Cells(part_r, part_c), _ Cells(part_r + part_rcount - 1, part_c)) 但這邊就會出現問題 因為直接用Range 變成是指定ActiveWorkSheet 所以 假設輸入的 partdata 是另個活頁簿的 就會#VALUE 所以想請問這個函式 如何可以改成跨表格通用的 -- Sent from my fx-82SX -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 210.69.128.66 ※ 文章網址: https://www.ptt.cc/bbs/Office/M.1528885026.A.330.html

06/13 18:52, 7年前 , 1F
用range.resize,rowsize一樣用range.rows.count-1
06/13 18:52, 1F

06/13 18:55, 7年前 , 2F
partdata.parent.range
06/13 18:55, 2F

06/13 18:56, 7年前 , 3F
或是用一個with block包起來,裡面用.range
06/13 18:56, 3F

06/13 18:56, 7年前 , 4F
with partdata.parent
06/13 18:56, 4F

06/13 18:56, 7年前 , 5F
'codes
06/13 18:56, 5F

06/13 18:56, 7年前 , 6F
end with
06/13 18:56, 6F

06/13 19:06, 7年前 , 7F

06/13 19:13, 7年前 , 8F
如partdata等同於part_pdate的範圍的話,也不用resize
06/13 19:13, 8F

06/13 19:14, 7年前 , 9F
有可能就可直接引用 https://i.imgur.com/W5yglxz.jpg
06/13 19:14, 9F
文章代碼(AID): #1R8EyYCm (Office)
文章代碼(AID): #1R8EyYCm (Office)