2017-09-23 35 views
0

我想从文本文件中获取公式到单元格中以通过命名范围来标识行。 我有这个宏:Excel公式从文本文件到单元格

Dim objStream 
Dim strData As String 
Set objStream = CreateObject("ADODB.Stream") 
objStream.Charset = "utf-8" 
objStream.Open 
objStream.LoadFromFile ("path_of_txt_file") 
strData = objStream.ReadText() 
strData = Trim(Application.Clean(strData)) 
Columns("A:A").Select 
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove 
Range("A1").Select 
ActiveCell.Value = "Name" 
Range("A2").Select 

Range("A2").FormulaR1C1 = strData 

文本文件包含这样的:

=IF(
    OR(
     named range="this"; 
     named range="that"; 
     named range="something" 
    ); 
    "True"; 
    "False" 
) 
... 

其嵌套的IF公式。

没有它的工作平等标志,但我需要把它手动。 就这样,我得到这个错误

Runtime error '1004': 
Application-defined or object-defined error 

我怎样才能解决这个问题?我试着用价值而不是FormulaR1C1,但结果相同。

感谢您的所有答案!

+1

什么是您在Excel中的公式分隔符?逗号或分号? –

+0

分号。它的工作,如果我把自己的平等标志。 –

+1

你的代码工作正常,如果我只是用','替换txt文件中的';' –

回答

2

Range("A2").FormulaR1C1 = strData似乎没有问题。用公式,代替公式中的;工作。

发布答案,因为它为OP工作。

+1

完美的工作,谢谢! –