excel vba将公式转为数值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了excel vba将公式转为数值相关的知识,希望对你有一定的参考价值。

1。将公式转为数值
2。前面加入"A"

公式可自动生成数值,无需VBA命令。
引用公式:cells(m,n).Formula
引用数值:cells(m,n).value
前面加入A: "A"&cells(m,n).value追问

Sub 除数()
mrow = Cells(Rows.Count, "C").End(3).Row
[E15] = "=iferror(D15/B13/B14,0)"
Range([E15], Cells(mrow + 1, "E")).FillDown
End Sub
得出结果是0.0000000015000我要的结果是A15

追答Sub 除数()
mrow = Cells(Rows.Count, "C").End(3).Row
[E15] = "="A"&iferror(D15/B13/B14,0)*10^9"
Range([E15], Cells(mrow + 1, "E")).FillDown
End Sub
参考技术A Private Sub CommandButton3_Click()
Dim Myr&, Arr, i&
Myr = Cells(Rows.Count, 1).End(xlUp).Row
Arr = Range("a3:l" & Myr)
For i = 1 To UBound(Arr)
If Arr(i, 1) <> "" Then Cells(i + 2, 2).Resize(1, 11) = Cells(i + 2, 2).Resize(1, 11).Value
Next
End Sub
参考技术B 前面是否都有0.追问

部分有0.
部有没有1.

追答Sub xx()
    For i = 5 To 27 Step 2
        j = 13
        Do While Cells(j, i) <> ""
            t = Cells(j, i).Text
            t = Replace(t, "0.", "")
            f = 1
            For k = 1 To Len(t)
                If Mid(t, k, 1) = "0" Then
                    f = f + 1
                Else
                    Exit For
                End If
            Next
            l = Len(t) - f + 1
            For k = Len(t) To 1 Step -1
                If Mid(t, k, 1) = "0" Or Mid(t, k, 1) = " " Then
                    l = l - 1
                Else
                    Exit For
                End If
            Next
            Cells(j, i) = "A" & Mid(t, f, l)
            j = j + 1
        Loop
    Next
End Sub

追问

运行了,没有任可变化
将第13单元以下所有数据转为数值

追答

传个附件上来看看,程序调试过的

追问

附件传了

追答本回答被提问者采纳

如何使用 VBA 将 Microsoft Word 公式导入 Microsoft Excel?

【中文标题】如何使用 VBA 将 Microsoft Word 公式导入 Microsoft Excel?【英文标题】:How can you import a Microsoft Word Equation to Microsoft Excel using VBA? 【发布时间】:2014-01-12 00:52:09 【问题描述】:

我一直在想办法将图片、表格和其他东西从Microsoft Word 2010 移动到Microsoft Excel 2010。我想找到一种方法是对OMath 对象或方程式做同样的事情。我想尽可能地保持方程的原始形式,所以如果这意味着将 OMath 对象转换为图片 (InlineShape),那么这就是我想要做的。

这是公式在 Word 中的样子,我想使用 VBA 将其导入到 Excel 中:

现在,我只能传输这个对象的 Range.Text 表示,这使得这个方程看起来像这样:

我发现我可以选择这个对象并进行选择复制。有没有办法确定这个选择的尺寸?我想将其粘贴到已调整大小以适合方程式的特定单元格中。我遍历 Word 文档的段落,每个段落都称为DocPara,当我遇到一个等式时,我会这样选择它:

DocPara.Range.OMaths(1).Range.Select
With Selection
    .CopyAsPicture
    oWB.ActiveSheet.Paste Destination:=oWB.ActiveSheet.Cells(headingCount, 3)
End With

我上面的问题是图片粘贴在我想要的位置,但比它所在的行大,如果我调整行的大小,图片会随着行调整大小而垂直线性拉伸。在粘贴之前,我需要调整要粘贴此图像的行的大小。如何访问我刚刚放在剪贴板上的图片的大小?

有人有什么想法吗?我真的很感激:)

【问题讨论】:

看看this 谢谢,我会继续关注的。但是,我试图在一个宏中使用一个已经存在于 word 文档中的方程来完成这项工作。我希望能够从我的宏所在的 word 中提取方程式,并将其放入 excel 中。 【参考方案1】:

粘贴图片后,将其.Placement 属性设置为xlMove(随单元格移动,但不要调整大小),然后再调整行大小。这可以防止图片调整大小。

这相当于设置图片格式属性

【讨论】:

以上是关于excel vba将公式转为数值的主要内容,如果未能解决你的问题,请参考以下文章

excel vba中将公式转为文本或数值公式

excel或者vba,怎样将工作簿内所有橙色单元格公式转换为数值?

excel VBA 当有公式的单元格录入内容后,自动将内容粘贴为数值

利用VBA实现多个工作表指定单元格公式变为数值?

ASP中有啥函数把文本型值转换为数值型值?

Excel:公式转数值