註冊
登錄
首頁
論壇版規
禁止列表
說明
地圖
數位書香
私人消息 (0)
公共消息 (0)
論壇任務 (0)
系統消息 (0)
好友消息 (0)
帖子消息 (0)
麻辣家族討論版版
»
Excel程式區
» 請問要怎麼使用從另一檔案對應欄位算出金額總和及儲存格總數??
返回列表
下一主題
上一主題
發帖
請問要怎麼使用從另一檔案對應欄位算出金額總和及儲存格總數??
Hsieh
發短消息
加為好友
Hsieh
當前離線
UID
3
帖子
4901
主題
44
精華
24
積分
4916
金錢
4916
點名
142
作業系統
Windows 7
軟體版本
Office 20xx
閱讀權限
150
性別
男
來自
台北
在線時間
4204 小時
註冊時間
2010-4-30
最後登錄
2026-7-16
超級版主
帖子
4901
主題
44
精華
24
積分
4916
點名
142
作業系統
Windows 7
軟體版本
Office 20xx
閱讀權限
150
性別
男
來自
台北
註冊時間
2010-4-30
最後登錄
2026-7-16
1
#
跳轉到
»
發表於 2011-8-28 21:30
|
顯示全部帖子
回復
1#
lulumi7434
用樞紐分析表吧
下載
(115.83 KB)
2011-8-28 21:30
學海無涯_不恥下問
TOP
Hsieh
發短消息
加為好友
Hsieh
當前離線
UID
3
帖子
4901
主題
44
精華
24
積分
4916
金錢
4916
點名
142
作業系統
Windows 7
軟體版本
Office 20xx
閱讀權限
150
性別
男
來自
台北
在線時間
4204 小時
註冊時間
2010-4-30
最後登錄
2026-7-16
超級版主
帖子
4901
主題
44
精華
24
積分
4916
點名
142
作業系統
Windows 7
軟體版本
Office 20xx
閱讀權限
150
性別
男
來自
台北
註冊時間
2010-4-30
最後登錄
2026-7-16
2
#
發表於 2011-8-28 23:06
|
顯示全部帖子
Sub ex()
Dim A As Range
Set d = CreateObject("Scripting.Dictionary")
fs = ThisWorkbook.Path & "\123.xls"
With Workbooks.Open(fs)
With .Sheets(1)
For Each A In .Range(.[I2], .[I2].End(xlDown))
If IsEmpty(d(A.Value)) Then
d(A.Value) = Array(A.Offset(, 1).Value, 1)
Else
ar = d(A.Value)
ar(0) = ar(0) + A.Offset(, 1).Value
ar(1) = ar(1) + 1
d(A.Value) = ar
End If
Next
End With
.Close
End With
With 工作表1
For i = 5 To .[B65536].End(xlUp).Row Step 2
Set A = .Cells(i, 2)
A.Offset(, 2).Resize(2, 1) = Application.Transpose(d(A.Value))
Next
End With
End Sub
複製代碼
回復
3#
lulumi7434
學海無涯_不恥下問
TOP
Hsieh
發短消息
加為好友
Hsieh
當前離線
UID
3
帖子
4901
主題
44
精華
24
積分
4916
金錢
4916
點名
142
作業系統
Windows 7
軟體版本
Office 20xx
閱讀權限
150
性別
男
來自
台北
在線時間
4204 小時
註冊時間
2010-4-30
最後登錄
2026-7-16
超級版主
帖子
4901
主題
44
精華
24
積分
4916
點名
142
作業系統
Windows 7
軟體版本
Office 20xx
閱讀權限
150
性別
男
來自
台北
註冊時間
2010-4-30
最後登錄
2026-7-16
3
#
發表於 2011-8-29 22:21
|
顯示全部帖子
本帖最後由 Hsieh 於 2011-8-29 23:19 編輯
回復
5#
lulumi7434
去了解程式碼,就知道怎麼修改了
看看哪邊不一樣
Sub ex()
Dim A As Range
Set d = CreateObject("Scripting.Dictionary")
fs = ThisWorkbook.Path & "\123.xls"
With Workbooks.Open(fs)
With .Sheets(1)
For Each A In .Range(.[I2], .[I2].End(xlDown))
If IsEmpty(d(A.Value)) Then
d(A.Value) = Array(1, A.Offset(, 1).Value)
Else
ar = d(A.Value)
ar(0) = ar(0) + 1
ar(1) = ar(1) + A.Offset(, 1).Value
d(A.Value) = ar
End If
Next
End With
.Close
End With
With 工作表1
For i = 5 To .[B65536].End(xlUp).Row Step 2
Set A = .Cells(i, 2)
A.Offset(, 2).Resize(2, 1) = Application.Transpose(d(A.Value))
Next
End With
End Sub
複製代碼
學海無涯_不恥下問
TOP
靜思自在 :
【是否發揮了良能?】人間壽命因為短暫,才更顯得珍貴。難得來一趟人間,應問是否為人間發揮了自己的良能,而不要一味求長壽。
返回列表
下一主題
上一主題
PHP
FLASH / ActionScript
C 與 C#
新手測試
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粉絲