返回列表 上一主題 發帖

[發問] sheet切換儲存格資料修改

本帖最後由 luhpro 於 2014-12-22 00:21 編輯
各位大大好,使用vba下如進行sheet切換動作進行儲存格的公式套入
不需切至該sheet下即可完成,但某些動作如 ...
ayubbs 發表於 2014-12-20 01:04

1.  設定公式應該要用 .Formula , 底下這幾種都可以實現:
  1.   With Sheets("aa")
  2.     .[B2].Formula = "=IF(R[-1]C[-1]<>RC[-1],1,R[-1]C+1)"
  3.     .[B2].AutoFill Destination:=.Range("B2:B" & .[C2].End(xlDown).Row)
  4.   End With
複製代碼
  1.   With Sheets("aa")
  2.     .[B2].Formula = "=IF(R[-1]C[-1]<>RC[-1],1,R[-1]C+1)"
  3.     .[B2].AutoFill Destination:=.Range(.[B2], .Cells(.[C2].End(xlDown).Row, 2))
  4.   End With
複製代碼
  1.   With Sheets("aa").[B2]
  2.     .Formula = "=IF(R[-1]C[-1]<>RC[-1],1,R[-1]C+1)"
  3.     .AutoFill Destination:=Range(.Offset(0), .Parent.Cells(.Offset(, 1).End(xlDown).Row, 2))
  4.   End With
複製代碼
2. 你的公式發生錯誤的原因 : Range("F1" & [F1].End(xlDown).Row) 內,
引號中的字串要用 "F1:F2" 的格式,
你沒有 : 且後面 [F1].End(xlDown).Row 結果只是一個數字而非儲存格位址文字.
不過若直接修改你的程式成:
  1.   Sheets("工作表3").Range("F1:F" & [F1].End(xlDown).Row).Value = Sheets("工作表3").Range("F1:F" & [F1].End(xlDown).Row)
複製代碼
執行後該欄資料卻會全部消失這我也不知道是為甚麼.
現修改如下 :
  1. With Sheets("工作表3").[F1]
  2.   .Range(.Offset(0), .Offset(.End(xlDown).Row)).Value = .Range(.Offset(0), .Offset(.End(xlDown).Row))
  3. End With
複製代碼
但看你 #1 的敘述似乎是要改儲存格格式為文字,
那麼應該是要改成底下這樣才對喔:
  1. Sheets("工作表3").Range("F1:F" & [F1].End(xlDown).Row).NumberFormat = "@"
複製代碼
3. 我建議試試如下方式, 不過我沒驗證過 :
  1. Workbooks("\\b\c.xls").Sheets("aa").Range("A1:F1").Value = xxx
複製代碼

TOP

        靜思自在 : 小事不做、大事難成。
返回列表 上一主題