註冊
登錄
首頁
論壇版規
禁止列表
說明
地圖
數位書香
私人消息 (0)
公共消息 (0)
論壇任務 (0)
系統消息 (0)
好友消息 (0)
帖子消息 (0)
麻辣家族討論版版
»
Excel程式區
» 有關Excel VBA陣列使用方式...
1
2
下一頁
返回列表
下一主題
上一主題
發帖
[發問]
有關Excel VBA陣列使用方式...
VBALearner
發短消息
加為好友
VBALearner
當前離線
UID
25455
帖子
102
主題
14
精華
0
積分
142
金錢
142
點名
0
作業系統
Win10
軟體版本
Office2016
閱讀權限
20
性別
男
在線時間
54 小時
註冊時間
2016-7-31
最後登錄
2020-3-21
中學生
帖子
102
主題
14
精華
0
積分
142
點名
0
作業系統
Win10
軟體版本
Office2016
閱讀權限
20
性別
男
註冊時間
2016-7-31
最後登錄
2020-3-21
1
#
跳轉到
»
正序看帖
打印
字體大小:
t
T
發表於 2016-7-31 23:52
|
只看該作者
[發問]
有關Excel VBA陣列使用方式...
本帖最後由 VBALearner 於 2016-7-31 23:53 編輯
Excel
VBA的
問題
請問如果我有個一維陣列
裡面有10個數字分別對應陣列(1~10)
假設我今天要排序陣列中數值大到小
那我要
如何
知道排名前5大數值的原始標籤(就是原本的1~10排序被打亂後 如何呼叫)?
感謝回答
option explicit
dim total(50) as variant
for i = 1 to 50
total(i) = application.
worksheet
function.sum(
range
(cells(i,1),cells(i,10)))
next
sorting....%#$?!
index of top 20?!
複製
代碼
或是有其他更好的方式?!
樓主熱帖
上市櫃三大法人買賣超日報資料彙整處理
VBA不給用工作表函數ABS絕對值功能嗎?
讓所有ComboBox的Caption字體大小都是12
關於小學生的回復功能...
在調整Word的表格時...
管理者大大 Python版有沒有機會創建呢?
不好意思容我問個蠢問題
把Excel資料倒置
字串...物件化?! 目的:Call 字串
請幫小弟除錯...是不能連續用find函數嗎?!
收藏
分享
VBALearner
發短消息
加為好友
VBALearner
當前離線
UID
25455
帖子
102
主題
14
精華
0
積分
142
金錢
142
點名
0
作業系統
Win10
軟體版本
Office2016
閱讀權限
20
性別
男
在線時間
54 小時
註冊時間
2016-7-31
最後登錄
2020-3-21
中學生
帖子
102
主題
14
精華
0
積分
142
點名
0
作業系統
Win10
軟體版本
Office2016
閱讀權限
20
性別
男
註冊時間
2016-7-31
最後登錄
2020-3-21
13
#
發表於 2016-8-8 15:20
|
只看該作者
回復
12#
准提部林
是是! 我慢慢累積琢磨後再來向您請教,感謝您OvO
TOP
准提部林
發短消息
加為好友
准提部林
當前離線
UID
13768
帖子
2843
主題
10
精華
0
積分
2899
金錢
2899
點名
0
作業系統
〔略〕
軟體版本
〔略〕
閱讀權限
100
性別
男
來自
〔略〕
在線時間
2116 小時
註冊時間
2013-5-13
最後登錄
2025-7-7
版主
帖子
2843
主題
10
精華
0
積分
2899
點名
0
作業系統
〔略〕
軟體版本
〔略〕
閱讀權限
100
性別
男
來自
〔略〕
註冊時間
2013-5-13
最後登錄
2025-7-7
12
#
發表於 2016-8-8 11:17
|
只看該作者
回復
11#
VBALearner
程式方法少人用, 一定有它的道理,
微軟會提供不同方法去處理類似需求, 也有它的道理,
所以, 沒有好不好用問題, 只有適不適用?
VBA靠經驗, 慢慢摸, 慢慢磨, 花的時間夠多, 對于資料的處理, 其實就那幾個方法吧!
TOP
VBALearner
發短消息
加為好友
VBALearner
當前離線
UID
25455
帖子
102
主題
14
精華
0
積分
142
金錢
142
點名
0
作業系統
Win10
軟體版本
Office2016
閱讀權限
20
性別
男
在線時間
54 小時
註冊時間
2016-7-31
最後登錄
2020-3-21
中學生
帖子
102
主題
14
精華
0
積分
142
點名
0
作業系統
Win10
軟體版本
Office2016
閱讀權限
20
性別
男
註冊時間
2016-7-31
最後登錄
2020-3-21
11
#
發表於 2016-8-7 22:47
|
只看該作者
回復
9#
准提部林
咦...這麼看來...Evaluate其實很好用欸?!!
application.worksheetfunction都免叫了
平常用習慣的工作表函數都直接用Evaluate呼叫也行,是吧?!(不科學阿xD~~~)
可是好像沒有很多人在用Evaluate,市面上的書都沒介紹它...
那想請問大大,除了上述功能外,有甚麼Evaluate常用的用法嗎OwO?
謝謝指教!
TOP
VBALearner
發短消息
加為好友
VBALearner
當前離線
UID
25455
帖子
102
主題
14
精華
0
積分
142
金錢
142
點名
0
作業系統
Win10
軟體版本
Office2016
閱讀權限
20
性別
男
在線時間
54 小時
註冊時間
2016-7-31
最後登錄
2020-3-21
中學生
帖子
102
主題
14
精華
0
積分
142
點名
0
作業系統
Win10
軟體版本
Office2016
閱讀權限
20
性別
男
註冊時間
2016-7-31
最後登錄
2020-3-21
10
#
發表於 2016-8-3 11:15
|
只看該作者
回復
9#
准提部林
喔喔完全懂了! 感謝您仔細地回答!!!
原來array還有橫式跟直式的區別...我以為就只是存在記憶體裡面的資料而已,我愛用甚麼形狀貼上就用什麼形狀貼上......恩~總之感謝!
TOP
准提部林
發短消息
加為好友
准提部林
當前離線
UID
13768
帖子
2843
主題
10
精華
0
積分
2899
金錢
2899
點名
0
作業系統
〔略〕
軟體版本
〔略〕
閱讀權限
100
性別
男
來自
〔略〕
在線時間
2116 小時
註冊時間
2013-5-13
最後登錄
2025-7-7
版主
帖子
2843
主題
10
精華
0
積分
2899
點名
0
作業系統
〔略〕
軟體版本
〔略〕
閱讀權限
100
性別
男
來自
〔略〕
註冊時間
2013-5-13
最後登錄
2025-7-7
9
#
發表於 2016-8-3 10:12
|
只看該作者
application.transpose
為〔轉置〕之用,原設array陣列為〔橫式〕,須轉置一次才能以〔直式-由上而下〕貼入欄位
application.evaluate
用來將〔文字字串〕的〔計算式〕,以工作表函數方式直接計算出其結果,
例如:MsgBox Application.Evaluate(
"=A1>A2"
)
因範例題中含〔文字〕的比較大小,VBA與公式的比較結果是不一樣的,
為了達到VBA排序的結果能與工作表排序結果一致,所以利用了Evaluate,
若是〔純數值〕的比較,直接使用 a>B 即可。
TOP
VBALearner
發短消息
加為好友
VBALearner
當前離線
UID
25455
帖子
102
主題
14
精華
0
積分
142
金錢
142
點名
0
作業系統
Win10
軟體版本
Office2016
閱讀權限
20
性別
男
在線時間
54 小時
註冊時間
2016-7-31
最後登錄
2020-3-21
中學生
帖子
102
主題
14
精華
0
積分
142
點名
0
作業系統
Win10
軟體版本
Office2016
閱讀權限
20
性別
男
註冊時間
2016-7-31
最後登錄
2020-3-21
8
#
發表於 2016-8-3 00:10
|
只看該作者
本帖最後由 VBALearner 於 2016-8-3 00:19 編輯
回復
6#
准提部林
我會用sorting功能 但是我的資料有標籤號碼 我要排序完後還能讀取相對應的標籤號碼
而且我同時處理多種資料
所以不想貼到worksheet上面處理
然後剛樓上提到的方法我之前也沒想過xD
目的是要找多種資料排名前100大的資料交集的標籤號碼
另外,我可以問您application.transpose的問題嗎? 他好像只是單純貼上的功能?!!
還有application.evaluate,這好像有很多功能....? 其中一種好像是可以把字串變數值? 還有其他...? 不太懂
還請賜教!
TOP
VBALearner
發短消息
加為好友
VBALearner
當前離線
UID
25455
帖子
102
主題
14
精華
0
積分
142
金錢
142
點名
0
作業系統
Win10
軟體版本
Office2016
閱讀權限
20
性別
男
在線時間
54 小時
註冊時間
2016-7-31
最後登錄
2020-3-21
中學生
帖子
102
主題
14
精華
0
積分
142
點名
0
作業系統
Win10
軟體版本
Office2016
閱讀權限
20
性別
男
註冊時間
2016-7-31
最後登錄
2020-3-21
7
#
發表於 2016-8-3 00:07
|
只看該作者
本帖最後由 VBALearner 於 2016-8-3 00:18 編輯
回復
5#
ML089
喔喔感謝您!!
把編碼加在後面的方法真是太聰明了!!!
TOP
准提部林
發短消息
加為好友
准提部林
當前離線
UID
13768
帖子
2843
主題
10
精華
0
積分
2899
金錢
2899
點名
0
作業系統
〔略〕
軟體版本
〔略〕
閱讀權限
100
性別
男
來自
〔略〕
在線時間
2116 小時
註冊時間
2013-5-13
最後登錄
2025-7-7
版主
帖子
2843
主題
10
精華
0
積分
2899
點名
0
作業系統
〔略〕
軟體版本
〔略〕
閱讀權限
100
性別
男
來自
〔略〕
註冊時間
2013-5-13
最後登錄
2025-7-7
6
#
發表於 2016-8-2 20:45
|
只看該作者
EXCEL本身的排序功能最好用, 也適合大部份的資料型態(尤其是多欄位的資料),
為何不用它???
TOP
ML089
發短消息
加為好友
ML089
當前離線
UID
3671
帖子
2025
主題
13
精華
0
積分
2053
金錢
2053
點名
0
作業系統
WIN7
軟體版本
Office2007
閱讀權限
100
性別
男
來自
台北市
在線時間
2405 小時
註冊時間
2011-3-2
最後登錄
2024-3-14
版主
帖子
2025
主題
13
精華
0
積分
2053
點名
0
作業系統
WIN7
軟體版本
Office2007
閱讀權限
100
性別
男
來自
台北市
註冊時間
2011-3-2
最後登錄
2024-3-14
5
#
發表於 2016-8-2 19:48
|
只看該作者
回復
3#
VBALearner
如何知道排名前5大數值的原始標籤(就是原本的1~10排序被打亂後 如何呼叫)?
可以
1. 使用2個一維陣列,一個紀錄原始標籤(或順位),一個紀錄資料陣列
2. 使用2維陣列,一維紀錄原始標籤(或順位),另一維紀錄資料陣列
3. 或原始資料與原始標籤合併,
例如
1 33 合併為 33001
2 11 合併為 11002
3 44 合併為 44003
排序後取資料後3碼就是原始標籤(或順位)
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式
TOP
靜思自在 :
一句溫暖的話,就像往別人身上灑香水,自己會沾到兩三滴。
1
2
下一頁
返回列表
下一主題
上一主題
管理公告
EXCEL專屬討論區
Excelㄧ般區
Excel程式區
進階應用專區
OFFICE 系列
Word
PowerPoint
Access
Office不分區
程式語言
VB 與 VB.Net
C 與 C#
Java 與 J#
程式設計不分區
資料庫
ORACLE
My SQL
MS SQL
網頁設計
ASP 與 ASP.NET
PHP
PHP+MySQL 入門實作
JavaScript
FLASH / ActionScript
HTM/ HTML/ CSS
網頁設計不分區
電腦與作業系統
電腦各種硬體討論
一般電腦軟體討論
論壇事務
管理公告
投訴反映
新手測試
愛 ‧ 生活
公益佈告欄
生活與感動
[收藏此主題]
[關注此主題的新回復]
[通過 QQ、MSN 分享給朋友]
申請友情鏈接
Facebook粉絲