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

|
2#
發表於 2013-4-11 18:25
| 只看該作者
看到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

|
3#
發表於 2013-4-11 18:38
| 只看該作者
這樣的寫法好像怪怪的,
會想要寫這個主要是因為兩的excel 檔案,
要將a 檔案的資料 第一頁g10 ~G20 的和 丟到b檔案的第一頁的某個位置(假設是a1好了)
繼續想想看~ |
|
|
|
|
|
|
- 帖子
- 5923
- 主題
- 13
- 精華
- 1
- 積分
- 5986
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- Office 2010
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台灣基隆
- 註冊時間
- 2010-5-1
- 最後登錄
- 2022-1-23
        
|
4#
發表於 2013-4-11 18:50
| 只看該作者
回復 3# cji3cj6xu6
設定物件(Range,Workbook....)變數 前面要加 Set
- Option Explicit
- Sub Ex()
- Dim DQ As Integer, A As Range
- For DQ = 1 To 10 '工作表索引 1 TO 10
- Set A = Worksheets(DQ).Range("a1:a10")
- MsgBox Application.Sum(A)
- Next
- End Sub
複製代碼 |
|
|
|
|
|
|
- 帖子
- 112
- 主題
- 19
- 精華
- 0
- 積分
- 136
- 點名
- 0
- 作業系統
- window
- 軟體版本
- excel
- 閱讀權限
- 20
- 性別
- 男
- 註冊時間
- 2013-3-12
- 最後登錄
- 2022-11-29

|
5#
發表於 2013-4-11 22:19
| 只看該作者
謝謝板主費心,找時間再試看看。
所以我應該寫成
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 的功能是打開一個對話框是嗎?
在程式中一定要寫是嗎?
謝謝~ |
|
|
|
|
|
|
暱稱: 隨風飄蕩的羽毛 頭銜: [御用]潛水艇
高中生 
- 帖子
- 852
- 主題
- 79
- 精華
- 0
- 積分
- 918
- 點名
- 0
- 作業系統
- Windows 7 , XP
- 軟體版本
- Office 2007, Office 2003,Office 2010,YoZo Office
- 閱讀權限
- 50
- 性別
- 男
- 來自
- 宇宙
- 註冊時間
- 2011-4-8
- 最後登錄
- 2024-2-21
|
6#
發表於 2013-4-12 08:10
| 只看該作者
謝謝板主費心,找時間再試看看。
所以我應該寫成
Sub Ex()
Dim DQ As Integer, A As Range, Addr ...
cji3cj6xu6 發表於 2013-4-11 22:19 
MsgBox Application.Sum(A) <== 這是跳出一個小對話框 顯示Application.Sum(A) 的結果...
可寫可不寫
寫了是妳到時候還要將那個小對話框按掉.. |
|
多做多想多學習,少看少錯少迷途
多做=多多練習,多多編寫。
多想=想想為什麼人家程式要那樣寫,如果換成自己,又會怎寫。
多學習=學習人家的發問並解答,學習人家的寫法
少看=只看不做也枉然
|
|
|
|
|
- 帖子
- 112
- 主題
- 19
- 精華
- 0
- 積分
- 136
- 點名
- 0
- 作業系統
- window
- 軟體版本
- excel
- 閱讀權限
- 20
- 性別
- 男
- 註冊時間
- 2013-3-12
- 最後登錄
- 2022-11-29

|
7#
發表於 2013-4-12 08:52
| 只看該作者
|
|
|
|
|
|
- 帖子
- 112
- 主題
- 19
- 精華
- 0
- 積分
- 136
- 點名
- 0
- 作業系統
- window
- 軟體版本
- excel
- 閱讀權限
- 20
- 性別
- 男
- 註冊時間
- 2013-3-12
- 最後登錄
- 2022-11-29

|
8#
發表於 2013-4-12 12:40
| 只看該作者
謝謝板主,可以了,最後一句
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 |
|
|
|
|
|
|