Application.Sum(Sheet.[g10:g20]) 裡面的Sheet 可用代碼取代嗎?
- 帖子
- 112
- 主題
- 19
- 精華
- 0
- 積分
- 136
- 點名
- 0
- 作業系統
- window
- 軟體版本
- excel
- 閱讀權限
- 20
- 性別
- 男
- 註冊時間
- 2013-3-12
- 最後登錄
- 2022-11-29

|
Application.Sum(Sheet.[g10:g20]) 裡面的Sheet 可用代碼取代嗎?
大大好,
請問,假設我有十張Sheet,分別為Sheet1, Sheet2... Sheet10,
而我有辦法將Sum 裡面的 Sheet 名稱改用代碼取代嗎?
例如,
For DQ=1 To 10
Application.Sum(DQ[g10:g20])
Next
請問以上的寫法可行嗎?
謝謝 |
|
|
|
|
|
|
|
- 帖子
- 112
- 主題
- 19
- 精華
- 0
- 積分
- 136
- 點名
- 0
- 作業系統
- window
- 軟體版本
- excel
- 閱讀權限
- 20
- 性別
- 男
- 註冊時間
- 2013-3-12
- 最後登錄
- 2022-11-29

|
看到2008年有人寫過類似的寫法
a = Worksheets("sheet1").Range("a1:a10")
Application.Sum(a)
所以我可以改為以下嗎?
For DQ=1 To 10
a = Worksheets(DQ).Range("g10:g20")
Application.Sum(a)
Next |
|
|
|
|
|
|
|
- 帖子
- 112
- 主題
- 19
- 精華
- 0
- 積分
- 136
- 點名
- 0
- 作業系統
- window
- 軟體版本
- excel
- 閱讀權限
- 20
- 性別
- 男
- 註冊時間
- 2013-3-12
- 最後登錄
- 2022-11-29

|
這樣的寫法好像怪怪的,
會想要寫這個主要是因為兩的excel 檔案,
要將a 檔案的資料 第一頁g10 ~G20 的和 丟到b檔案的第一頁的某個位置(假設是a1好了)
繼續想想看∼ |
|
|
|
|
|
|
|
- 帖子
- 112
- 主題
- 19
- 精華
- 0
- 積分
- 136
- 點名
- 0
- 作業系統
- window
- 軟體版本
- excel
- 閱讀權限
- 20
- 性別
- 男
- 註冊時間
- 2013-3-12
- 最後登錄
- 2022-11-29

|
謝謝板主費心,找時間再試看看。
所以我應該寫成
Sub Ex()
Dim DQ As Integer, A As Range, Address1 as Integer
Address1=1
For DQ = 1 To 10 '工作表索引 1 TO 10
Windows("file1.xls").Active
Set A = Worksheets(DQ).Range("a1:a10")
MsgBox Application.Sum(A)
Windows("file2.xls").Active
Worksheets(DQ).Range("a"& Address1).value=A
Next
End Sub
這樣對嗎?
另外一點, MsgBox 的功能是打開一個對話框是嗎?
在程式中一定要寫是嗎?
謝謝~ |
|
|
|
|
|
|
|
- 帖子
- 112
- 主題
- 19
- 精華
- 0
- 積分
- 136
- 點名
- 0
- 作業系統
- window
- 軟體版本
- excel
- 閱讀權限
- 20
- 性別
- 男
- 註冊時間
- 2013-3-12
- 最後登錄
- 2022-11-29

|
|
|
|
|
|
|
|
- 帖子
- 112
- 主題
- 19
- 精華
- 0
- 積分
- 136
- 點名
- 0
- 作業系統
- window
- 軟體版本
- excel
- 閱讀權限
- 20
- 性別
- 男
- 註冊時間
- 2013-3-12
- 最後登錄
- 2022-11-29

|
謝謝板主,可以了,最後一句
Worksheets(DQ).Range("a"& Address1).value=A
應該改為
Worksheets(DQ).Range("a"& Address1).value=Application.Sum(A)
所以整段應該是
Sub Ex()
Dim DQ As Integer, A As Range, Address1 as Integer
Address1=1
For DQ = 1 To 10 '工作表索引 1 TO 10
Windows("file1.xls").Activate
Set A = Worksheets(DQ).Range("a1:a10")
MsgBox Application.Sum(A)
Windows("file2.xls").Activate
Worksheets(DQ).Range("a"& Address1).value=Application.Sum(A)
Next
End Sub |
|
|
|
|
|
|
|