使用replace将单元格转换为公式
我有一个Excel文件,其中有几张纸。 在每个“A1”单元中,我将公式保存为一个文本,格式为:
%= TR('Sheet 1'!C1;'Sheet 1'!$ F $ 1:$ F $ 5;“Frq = D SDate =#1 EDate =#2 Curn = EUR CH = Fd”; $ B $ 1;'Sheet 1'!$ D $ 1;'Sheet 1'!$ E $ 1)
由于公式允许通过Add-In(xlam)连接到数据库(Thomson Reuters Eikon)并用于从此数据库检索数据,所以我特意将它们保存为这种格式。 如果我把它们全部放在没有%字符的文件中,那么它们会被立刻运行,并且会崩溃。 所以我想写VBA,在每个表中逐个删除字符( %
),因此等待一两分钟,直到上一页中的公式检索到数据。 我尝试了几种方法,但都没有工作。
首先,我试图用这个代码replace字符:
Dim SearchValue As String Dim NewValue As String SearchValue = "%" NewValue = "" Selection.Replace What:=SearchValue, Replacement:=NewValue, LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False
和这个代码:
Range("B1").Replace "%", ""
但是,只有当我打电话查找和replace框并手动按下button。
Application.Dialogs(xlDialogFormulaReplace).Show "%", ""
如何使用macros来运行查找和replace框?
此外,我试图在TR('Sheet 1'!C1;'Sheet 1'!$ F $ 1:$ F $ 5;“Frq = D SDate =#1 EDate =#2 Curn = EUR CH = Fd“; $ B $ 1;'Sheet 1'!$ D $ 1;'Sheet 1'!$ E $ 1)像这样:
myformula = Cells(1, 1).Value Range("B1").Select ActiveCell.Formula = "=" & myformula
我也没有成功
是否有其他可能性来replace%
字符?
将replace写入Range.Formula属性 。
with selection.cells(1) .formula = replace(.value, chr(37), vbnullstring) end with With Sheets("Sheet1").Cells(1, 1) .Formula = Replace(.Value, Chr(37), vbNullString) End With 'for non-US-EN systems you need to use comma list separators with .Formula With Sheets("Sheet1").Cells(1, 1) .Formula = Replace(Replace(.Value, Chr(37), vbNullString), Chr(59), Chr(44)) End With 'for non-US-EN systems you can also use .FormulaLocal With Sheets("Sheet1").Cells(1, 1) .FormulaLocal = Replace(.Value, Chr(37), vbNullString) End With
VBA公式设置非常US-EN为中心; 它期望你在EN-US系统上使用一个公式。 您可以将公式列表分隔符从分号更改为逗号,或者使用Range.FormulaLocal属性对分号列表分隔符进行validation。