在VBA中将文本字符串计算为公式

在VBA中将文本字符串计算为公式,vba,excel,Vba,Excel,我正在使用VBA在已插入下载数据集中的列中输入公式。显然,我插入的数据集存储为文本,因此插入的列继承了该特征。我想说清楚,它不是文本格式,它有一个文本的类型名 我有=2+2,单元格显示=2+2,而不是计算公式并显示4。 根据其他一些建议,我试着 activecell.value=评估(activecell.value) 这样就行了,单元格将显示4。但是公式现在不存在了,单元格的公式=4。为了使用自动填充功能,我需要保留公式 我可以在VBA中使用循环,但这似乎太复杂了。是否有一种简单的方法可以强制

我正在使用VBA在已插入下载数据集中的列中输入公式。显然,我插入的数据集存储为文本,因此插入的列继承了该特征。我想说清楚,它不是文本格式,它有一个文本的类型名

我有
=2+2
,单元格显示=2+2,而不是计算公式并显示4。 根据其他一些建议,我试着

activecell.value=评估(activecell.value)

这样就行了,单元格将显示4。但是公式现在不存在了,单元格的公式=4。为了使用自动填充功能,我需要保留公式


我可以在VBA中使用循环,但这似乎太复杂了。是否有一种简单的方法可以强制excel停止假设数据类型为文本?

如果公式栏和单元格都显示:

=2 + 2
那么这应该可以解决这个问题:

Sub qwerty()
    With ActiveCell
        .NumberFormat = "General"
        .Formula = .Value
    End With
End Sub

您只能有一个值。。。它不能既是公式又是值。您的公式实际上是2+2还是其他形式?请确保您正在写入.formula属性,而不是.value属性。另外,请确保numberFormat不是文本。“不是文本格式,它的类型名是Text”-您能解释一下区别吗?工作表上的单元格没有“typename”属性。在插入公式之前,您可能需要将格式更改为“General”:这应该可以解决它……因此,如果您可以在添加公式的地方包含相关代码,这将有所帮助。我为不清晰表示歉意。虽然问题已经得到了回答,但我觉得我应该澄清一下。当时我没有意识到这一点,但我所说的typename显然是一个本机函数“typename(activecell.value)”,我的印象是这与单元格中的数字格式有所不同,因为在不重新计算的情况下更改数字格式不会改变任何东西。我只是错过了一步,因此产生了误解。我道歉@L42逻辑思维将汇聚到逻辑解决方案。完美!非常感谢你!这两个步骤我都试过了,但没有一起试过。谢谢