Board logo

標題: [發問] 請問公式 ActiveCell.FormulaR1C1 代號如何寫 [打印本頁]

作者: cji3cj6xu6    時間: 2013-11-14 17:07     標題: 請問公式 ActiveCell.FormulaR1C1 代號如何寫

請問以下公式 的R[-1703]代號如何寫
ActiveCell.FormulaR1C1 = "=sheet4!R[-1703]C[7]"

因為-1703 是遞增,請問該如何以代號書寫。

Thanks.
作者: GBKEE    時間: 2013-11-14 17:25

回復 1# cji3cj6xu6
試試看
  1. Sub Ex()
  2.    Dim i As Long
  3.    i = -100
  4.    ActiveCell.FormulaR1C1 = "=sheet1!R[" & i & "]C[7]"
  5. End Sub
複製代碼

作者: cji3cj6xu6    時間: 2013-11-14 17:39

搞定,謝謝GBKEE大∼
作者: cji3cj6xu6    時間: 2013-11-14 17:57

再請教GBKEE大,超連結位址的寫法
以下是2010錄製的寫法
     Range("S2").Select
    Selection.Hyperlinks(1).SubAddress = "sheet1!A1700"
    Range("S3").Select
    Selection.Hyperlinks(1).SubAddress = "'sheet3'!A1700"

先前我在excel2003時寫法是:
'Sheet3.Hyperlinks.Add Selection, Address:="", SubAddress:="'" & Range("a" & DQ).Value & "'" & "!A1675" ' 設定超連結位址

其中sheet3 是超連結位址儲存的頁面,
Range("a" & DQ) 是我存放SHEET名稱的地方

請問我該如何修改。
作者: GBKEE    時間: 2013-11-15 07:35

回復 4# cji3cj6xu6
試試看
  1. Option Explicit
  2. Sub Ex()
  3. Dim DQ
  4. DQ = 5
  5. Sheet3.Hyperlinks.Add Selection, Address:="", SubAddress:=Range("a" & DQ).Value & "!A1675"  ' 設定超連結位址
  6. 'Selection 屬性"   如果是 Application 物件,則傳回現用視窗中的選定物件,如果是 Windows 物件,則傳回指定視窗。

  7. '所以上式執行後會是ActiveSheet(作用中的工作表)的作用中的儲存格:新增一超連結 (不是在Sheet3)

  8. 'SubAddress:=Range("a" & DQ).Value (程式碼是在工作表模組:是這工作表物件的 Range("a" & DQ)
  9.                                   '(程式碼是在一般模組:是ActiveSheet(作用中的工作表)的 Range("a" & DQ)

  10. '*************************修正如下 *****************************************************************

  11. With Sheet3  '在 .Range("a10") 新增一超連結
  12.     .Hyperlinks.Add .Range("a10"), Address:="", SubAddress:=ActiveSheet.Range("a1").Value & "!A1675"
  13.     ' 設定超連結位址:連結到作用中工作表.Range("a1").Value的工作表名稱
  14.                     '或是指定工作表 SubAddress:=SHEETS("SHEET2").Range("a1").Value
  15. End With
  16. '同上 Sheet3.Hyperlinks.Add Sheet3.Range("a10"), Address:="", SubAddress:=ActiveSheet.Range("a1").Value & "!A1675"

  17. End Sub
複製代碼

作者: cji3cj6xu6    時間: 2013-11-15 08:51

GBKEE大,
謝謝囉,我再試看看∼
作者: cji3cj6xu6    時間: 2014-5-21 16:58

請問以下公式 的sheet4 若是有更動,例如從sheets(1), sheets(2), sheets(3)......, sheets(10) 語法要如何寫
ActiveCell.FormulaR1C1 = "=sheet4!R[-1703]C[7]"

謝謝∼
作者: GBKEE    時間: 2014-5-22 16:48

回復 7# cji3cj6xu6
  1. Option Explicit
  2. Sub Ex()
  3.     Dim i As Integer
  4.     For i = 1 To 10
  5.         ActiveCell.Offset(i - 1).FormulaR1C1 = "=" & Sheets(i).Name & "!R[-1703]C[7]"
  6.     Next
  7. End Sub
複製代碼

作者: cji3cj6xu6    時間: 2014-5-23 14:40

原來可以這樣寫,我直接將sheet name 抓出來,然後帶入,
但G大的寫法比較優,謝謝∼
作者: cji3cj6xu6    時間: 2014-6-20 11:46

請問  Selection.Hyperlinks(1).SubAddress = "'sheet3'!A1700"
裡面的1700會是個變數,假設我放在 sheets(25).Range("a40"),
請問要如何將sheets(25).Range("a40")帶進去?謝謝∼
作者: GBKEE    時間: 2014-6-20 13:15

回復 10# cji3cj6xu6
  1. Option Explicit
  2. Sub Ex()
  3.     Dim Rng As Range, AD As String
  4.     Set Rng = Workbooks("BOOK2.XLS").Sheets(3).[D50]
  5.     With ActiveSheet
  6.         .Hyperlinks.Add Anchor:=Range("B10"), Address:="", SubAddress:=Rng.Address(, , , 1, 1), TextToDisplay:=Rng.Address
  7.     End With
  8. End Sub
複製代碼

作者: cji3cj6xu6    時間: 2014-6-20 13:25

謝謝G大∼∼




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)