[算表] VBA 貼出ARRAY指定區間

看板Office作者 (c slomon)時間6年前 (2019/07/30 15:03), 6年前編輯推噓0(0027)
留言27則, 2人參與, 6年前最新討論串1/1
軟體:Excel 版本:2016 各為大家好 現在我有個狀況是這樣 查了兩天還是不知道該怎麼辦 我在VBA內有個不小的陣列 先假設是9x10000的陣列好了 Dim FF(1 to 9, 1 to 10000) As Variant 那我只想要把 FF(6~9, 10~10000)的內容貼出來 貼到 Range("A1:D9990")的區間上 有沒有辦法 在不創造新的陣列的情況下 直接將FF()的指定區間給貼出來呢? 請求各位大大幫忙解惑~~~ 已解決 Range("A1:D9990") = Application.Index(FF, [row(11:10000)], [Column(f:i)]) 以上可正確貼出指定陣列範圍 如果要用可變範圍的話 可以先 Dim i as Integer, j as Integer i=11 j=10000 Range("A1:D9990") = Application.Index(FF, Evaluate("row(" & i & ":" _ & j & ")"), [Column(f:i)]) 以上可貼出可變的動態區間 另外同理 Application.WorksheetFunction.Sum(Application.Index _ (FF, [row(11:10000)], [Column(f:i)])) 可以將陣列內指定範圍做加總 感謝soyoso大大熱心的指導~ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 110.26.62.195 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Office/M.1564470194.A.78C.html

07/30 15:49, 6年前 , 1F
application.index配合[column(f:i)]和[row(10:10000)]
07/30 15:49, 1F

07/30 15:51, 6年前 , 2F
另外10~10000以a1:d9990無法正確顯示的
07/30 15:51, 2F

07/30 15:51, 6年前 , 3F
10~10000是9991筆資料
07/30 15:51, 3F
soyoso大大您好! 我嘗試寫了以下語法 Range("A1:D9990") = Application.WorksheetFunction.Index(FT(), _ [row(11:10000)], [column(f:i)]) 但VBA運行結果是顯示 "型態不符合" 可以再麻煩s大稍微提點一下嗎...

07/31 11:15, 6年前 , 4F
application.index(ft,[column(...)],[row(...)])
07/31 11:15, 4F
原來沒有WorksheetFunction 剛剛我試了這個語法 Range("A1:D9990") = Application.Index(ft, [row(11:10000)], 6) 可以在儲存格A1:D9990 全部都貼上ft內第六直排的資料 但是如果改成 Range("A1:D9990") = Application.Index(ft, [colunm(f:i), [row(11:10000) 或是 Range("A1:D9990") = Application.Index(ft, [row(11:10000], [colunm(f:i)]) 儲存格則是全部都變成 #NAME? f:i 換成 6:9 也是 #NAME? 求救~~~~

07/31 12:11, 6年前 , 5F
不是回文寫的[row(11:10000],是[row(11:10000)]
07/31 12:11, 5F

07/31 12:12, 6年前 , 6F
column方面也是,[column(f:i),不正確,是[column(f:i)]
07/31 12:12, 6F

07/31 12:18, 6年前 , 7F
上面的部分會回傳錯誤#value;會回傳錯誤#name?是因為
07/31 12:18, 7F

07/31 12:19, 6年前 , 8F
回文colunm並不正確,是column
07/31 12:19, 8F

07/31 12:56, 6年前 , 9F
感謝s大~~ 原來我vba裡面是打成colunmn...已解決~
07/31 12:56, 9F

07/31 12:57, 6年前 , 10F
不好意思還要您幫忙抓錯字...晚點回把這文章編排好^^
07/31 12:57, 10F

07/31 18:31, 6年前 , 11F
內文變數是FF但index內卻是FT,有用transpose嗎?
07/31 18:31, 11F

07/31 18:33, 6年前 , 12F
因為以內文FF宣告的二維方式,測試是無法正確回傳資料,
07/31 18:33, 12F

07/31 18:34, 6年前 , 13F
會出現錯誤值#ref,需column在前。
07/31 18:34, 13F

07/31 18:35, 6年前 , 14F
但transpose後可以row在前
07/31 18:35, 14F

07/31 18:36, 6年前 , 15F
但因沒有說明變數FF和FT的關係,這方面是否說明一下
07/31 18:36, 15F

07/31 22:12, 6年前 , 16F
FF就是FT我後來手誤打錯,這邊都沒有用transpose
07/31 22:12, 16F

07/31 22:13, 6年前 , 17F
不過我試起來,好像都是row要在前面@@
07/31 22:13, 17F

07/31 22:23, 6年前 , 18F
在我這裡測試,是column在前,所以回文也才一直是這樣回的
07/31 22:23, 18F

07/31 22:24, 6年前 , 19F
原po可以正常使用即可
07/31 22:24, 19F

08/01 23:19, 6年前 , 20F
可以正常使用唷~ 不過想再延伸問一下
08/01 23:19, 20F

08/01 23:19, 6年前 , 21F
[row(11:10000)]裡面的 11:10000 想換成變數,該怎麼寫
08/01 23:19, 21F

08/01 23:20, 6年前 , 22F
才對... 我用 [row(i1:i2)]這類的寫法是不行的QQ
08/01 23:20, 22F

08/01 23:21, 6年前 , 23F
[]改以evaluate(...)括號內可用變數連接&
08/01 23:21, 23F
※ 編輯: cislomon (27.52.62.21 臺灣), 08/06/2019 14:15:23

08/06 14:16, 6年前 , 24F
我又有新的問題了@@ column這邊該如何換成變數比較好呢?
08/06 14:16, 24F

08/06 16:49, 6年前 , 25F
一樣,以evaluate(..)括號內可用變數連接
08/06 16:49, 25F

08/06 16:49, 6年前 , 26F
就看,帶入如果是數字的話chr轉為英文字母
08/06 16:49, 26F

08/08 23:17, 6年前 , 27F
非常感謝s大~
08/08 23:17, 27F
文章代碼(AID): #1TF-koUC (Office)
文章代碼(AID): #1TF-koUC (Office)