- 帖子
- 835
- 主題
- 6
- 精華
- 0
- 積分
- 915
- 點名
- 0
- 作業系統
- Win 10,7
- 軟體版本
- 2019,2013,2003
- 閱讀權限
- 50
- 性別
- 男
- 註冊時間
- 2010-5-3
- 最後登錄
- 2024-11-14
|
2#
發表於 2014-12-22 00:11
| 只看該作者
本帖最後由 luhpro 於 2014-12-22 00:21 編輯
各位大大好,使用vba下如進行sheet切換動作進行儲存格的公式套入
不需切至該sheet下即可完成,但某些動作如 ...
ayubbs 發表於 2014-12-20 01:04 
1. 設定公式應該要用 .Formula , 底下這幾種都可以實現:- With Sheets("aa")
- .[B2].Formula = "=IF(R[-1]C[-1]<>RC[-1],1,R[-1]C+1)"
- .[B2].AutoFill Destination:=.Range("B2:B" & .[C2].End(xlDown).Row)
- End With
複製代碼- With Sheets("aa")
- .[B2].Formula = "=IF(R[-1]C[-1]<>RC[-1],1,R[-1]C+1)"
- .[B2].AutoFill Destination:=.Range(.[B2], .Cells(.[C2].End(xlDown).Row, 2))
- End With
複製代碼- With Sheets("aa").[B2]
- .Formula = "=IF(R[-1]C[-1]<>RC[-1],1,R[-1]C+1)"
- .AutoFill Destination:=Range(.Offset(0), .Parent.Cells(.Offset(, 1).End(xlDown).Row, 2))
- End With
複製代碼 2. 你的公式發生錯誤的原因 : Range("F1" & [F1].End(xlDown).Row) 內,
引號中的字串要用 "F1:F2" 的格式,
你沒有 : 且後面 [F1].End(xlDown).Row 結果只是一個數字而非儲存格位址文字.
不過若直接修改你的程式成:- Sheets("工作表3").Range("F1:F" & [F1].End(xlDown).Row).Value = Sheets("工作表3").Range("F1:F" & [F1].End(xlDown).Row)
複製代碼 執行後該欄資料卻會全部消失這我也不知道是為甚麼.
現修改如下 :- With Sheets("工作表3").[F1]
- .Range(.Offset(0), .Offset(.End(xlDown).Row)).Value = .Range(.Offset(0), .Offset(.End(xlDown).Row))
- End With
複製代碼 但看你 #1 的敘述似乎是要改儲存格格式為文字,
那麼應該是要改成底下這樣才對喔:- Sheets("工作表3").Range("F1:F" & [F1].End(xlDown).Row).NumberFormat = "@"
複製代碼 3. 我建議試試如下方式, 不過我沒驗證過 :- Workbooks("\\b\c.xls").Sheets("aa").Range("A1:F1").Value = xxx
複製代碼 |
|