[算表] excel VBA 跨表擷取資料並紀錄

看板Office作者 (asdfjkl)時間8年前 (2017/08/15 17:41), 編輯推噓0(006)
留言6則, 1人參與, 最新討論串1/1
軟體:excel 版本:office 365 各位版大大家好, 最近剛學VBA希望能讓它自動擷取100個period(一個工作表10個period如圖一) 的資料,然後紀錄在新的工作表(如圖二)裡。 <圖一> http://imgur.com/a/4D4TQ <圖二> http://imgur.com/a/kwPhS 問題描述: 如<圖一>所示,每個工作表都規律分配10個period,假如J89等於6,則填入另 一工作表如<圖二> 6的下面並紀錄I89的值,以此類推。 請問這樣vba寫得出來嗎? 我有寫了如下,但是值都抓不出來 Dim a As Long For a = 1 To 2 If Sheets("period 1-10").Range("J89").Value = Sheets("total average").Range("B2").Value Then Sheets("total average").Range("B" & a).Value = Sheets("period 1-10").Range("I89").Value Next a End sub 請問大家有什麼好方法嗎~~ 拜託拜託(論文快生不出來了) 先謝謝了 <(_._)> -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 62.214.140.228 ※ 文章網址: https://www.ptt.cc/bbs/Office/M.1502790110.A.550.html

08/15 17:49, , 1F
如果實際資料為圖二依序3-20的話,可以range.offset將J89
08/15 17:49, 1F

08/15 17:50, , 2F
的值做欄偏移;如不連續或為文字的話可以工作表函數match
08/15 17:50, 2F

08/15 17:51, , 3F
取欄號,或range.find取得儲存格
08/15 17:51, 3F

08/15 17:56, , 4F
如要以原文來改的話,a=0 to 17或1 to 18(total average B
08/15 17:56, 4F

08/15 17:59, , 5F
到s欄),變數放於range.offset欄偏移,或cells欄號的部分
08/15 17:59, 5F

08/15 18:00, , 6F
置於cells欄號的話也可2 to 19
08/15 18:00, 6F
文章代碼(AID): #1Pai7ULG (Office)
文章代碼(AID): #1Pai7ULG (Office)