簡體   English   中英

Excel VBA硬編碼公式中的每個命名范圍

[英]Excel VBA Hardcode every Named Range in formulas

我目前正在復制一個包含工作簿和特定於工作表的命名范圍的工作表。 工作表特定的引用必須保持原樣,工作簿的引用必須進行硬編碼。 我正在尋找一種修復包含外部引用的每個命名范圍的方法。

我當前的代碼如下所示,但實際上不是我想要的:

Sub HardcodeValuesInExternalNamedRanges(wb As Workbook, ws As Worksheet)
Dim namCur As Name

For Each namCur In wb.Names
    If (InStr(1, namCur.RefersTo, ThisWorkbook.Name) > 0) Then
        namCur.RefersTo = "=" & ws.Evaluate(namCur.RefersTo)
    End If
Next namCur
End Sub

我找不到正確固定值的方法。 現在完成的方式在一定程度上可以完成這項工作,但是我更希望這些值在單元格中正確地轉換,而不僅僅是在命名范圍內。

另一個選擇是遍歷所有單元格,看看它是否包含一個命名范圍,但是我認為這將非常耗時。

有沒有辦法更有效地做到這一點?

而不是遍歷單元格,像這樣循環.FindNext樣?

Do
    rng.Value = rng.Value 'Hardcodes the value
    Set rng = .FindNext(What:=ThisWorkbook.Name Lookin:=xlFormulas) 'finds the next Value to be hardcoded
Loop While Not Rng Is Nothing

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM