- 帖子
- 438
- 主題
- 67
- 精華
- 0
- 積分
- 531
- 點名
- 0
- 作業系統
- win7
- 軟體版本
- office 2010
- 閱讀權限
- 50
- 性別
- 男
- 註冊時間
- 2012-10-30
- 最後登錄
- 2025-5-28
|
43#
發表於 2012-12-8 09:40
| 只看該作者
回復 42# GBKEE
01.Option Explicit
02.Sub Ex()
03. Dim Rng(1 To 2) As Range
04. With Workbooks("payment.XLSM").Sheets("2012")
05. Set Rng(1) = .[E1000].End(xlUp).Offset(, -4) '這 Rng(1)的位置
06. With Workbooks.Open("C:\Users\patrick.HKG\Desktop\Patrick.XLSX").Sheets("SHEET1")
07. Set Rng(2) = .[A2:L2]
08. Set Rng(2) = .Range(Rng(2), .[A2].End(xlDown))
09. MsgBox .Rows.Count - Rng(2).Rows.Count < .Rows.Count - Rng(1).Row 'True: Rng(2)範圍大於 Rng(1) 就有錯誤
10. Rng(2).Copy Rng(1)
11. .Parent.Close False
12. End With
13. End With
14.End Sub
是Rng(2)範圍大於 Rng(1),但是Set Rng(1) = .[E1000].End(xlUp).Offset(, -4) '這 Rng(1)的位置 (這句的意思是不是等於由E1000開始往上檢查最後一列,OFFSET( , -4)將E欄改成A欄
Set Rng(2) = .Range(Rng(2), .[A2].End(xlDown))是否意思從A欄第二列開始往下到最後一筆? |
|