Board logo

標題: [發問] 查檢 定義名稱 用在工作簿哪一些儲存格公式 [打印本頁]

作者: Scott090    時間: 2014-12-1 07:15     標題: 查檢 定義名稱 用在工作簿哪一些儲存格公式

請問大俠  

某一儲存格定義名稱為 "myName",有效範圍 "工作簿" 而被用在 工作簿("myBook")的其他"工作表" (mySh1, mySh2, ... myShN)內。
之後,使用公式的追蹤從屬參照只能在被定義的工作表清楚的追蹤,在其他的工作表內 就很不方便的一個個地找。
該如何清晰的具體地在其他工作內"追蹤"的到?
1. 在工作表的操作,
2. 用VBA 的方法。

感恩
作者: GBKEE    時間: 2014-12-1 09:18

回復 1# Scott090
  1. Sub Ex()
  2. MsgBox Range("test").Address(, , , 1)
  3. With ThisWorkbook.Names("test")
  4.    MsgBox "RefersTo " & .RefersTo
  5.    MsgBox "RefersToLocal " & .RefersToLocal
  6.    MsgBox "RefersToR1C1 " & .RefersToR1C1
  7.    MsgBox "RefersToR1C1Local " & .RefersToR1C1Local
  8.    MsgBox "RefersToRange " & .RefersToRange
  9. End With
  10. End Sub
複製代碼

作者: Scott090    時間: 2014-12-1 13:44

回復 2# GBKEE


    謝謝
Sub Ex()
MsgBox Range("test").Address(, , , 1)
With ThisWorkbook.Names("test")
   MsgBox "RefersTo " & .RefersTo

End With
End Sub
這個碼會取出 "test" 這個定義名稱 被定義在 那一個儲存格
我希望幫忙的是找出 "test" 被用在哪一些工作表的那一些儲存格:
例如說  "test" 被定義在 mySh1!$AE$14
              已被用在 mySh1的 A4 (=6+test), A20 (10*test) ,A32 (=test/3)、
                                          mySh3 的 AB7 (= test^2)、
                                         mySh4的 B7, B38 ....;
         如何找出這些儲存格有用到 "test" ?
              答案是 mySh1!$A$4, mySh1!$A$20 .......

再感恩
作者: GBKEE    時間: 2014-12-1 16:16

回復 3# Scott090
  1. Option Explicit
  2. Sub Ex()
  3.     Dim Rng As Range, Rng_address As String, Sh As Worksheet, Name_Range As String
  4.     With ThisWorkbook
  5.         For Each Sh In .Sheets
  6.             Set Rng = Sh.Cells.Find(What:="Test", LookIn:=xlFormulas, LookAt:=xlPart)
  7.             If Not Rng Is Nothing Then
  8.                 Rng_address = Rng.Address
  9.                 Do
  10.                     Name_Range = Name_Range & vbLf & Rng.Address(, , , 1)
  11.                     Set Rng = Sh.Cells.FindNext(Rng)
  12.                 Loop While Rng_address <> Rng.Address
  13.             End If
  14.         Next
  15.         Name_Range = Mid(Name_Range, 2)
  16.         Name_Range = Replace(Name_Range, "[" & .Name & "]", "")
  17.         MsgBox Name_Range
  18.    End With
  19. End Sub
複製代碼

作者: Scott090    時間: 2014-12-1 20:15

回復 4# GBKEE

已經解決了問題

感恩指導




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