如何用Excel VBA将文本转换为数字(3个带宏的例子)

  • Share This
Hugh West

在Microsoft Excel中,处理数字是最常见的。 有时,我们必须处理一个有大量数字的数据集。 但是,你可能会发现你的数字看起来像文本。 由于这个原因,你不能进行加、减、除、乘或任何形式的操作。 当你试图这样做时,它总是显示错误。 在本教程中,我们将教你如何转换在Excel中使用文本转换为数字 VBA 有适当的例子和适当的说明的代码。

下载实践工作手册

下载本练习册

使用VBA将文本转换为数字.xlsm

如何识别格式化为文本的数字

Microsoft Excel很聪明,能够理解文本和数字之间的区别。 它会自动将它们转换为各自的格式。 但是,有时由于对数据集的一些误用和误解,它无法做到这一点。 出于这个原因,它在你的工作簿中把这些数字保留为文本。

看看这个数据集,在这里,我们在一栏里有一些数字。

虽然我们在列中有数字,但它们都像文本一样是左对齐的。 现在,点击任何一个单元格,你会发现该单元格旁边有一个方框。

现在,将鼠标光标悬停在盒子上。 之后,你会看到这个信息。

它显示单元格被格式化为文本。 通过这种方式,你可以确定单元格是否被格式化为文本。

3个VBA代码将Excel中的文本转换为数字

虽然你可以很容易地手动将文本转换为数字,但本教程是关于使用VBA代码将文本转换为数字。 我们建议你学习并将所有这些方法应用于你的数据集。 当然,它在很多情况下会派上用场。

1.用Range.NumberFormat方法将Excel中的文本转换为数字的VBA代码

这种方法相当简单,在任何数据集上都很容易使用。 你所要做的就是选择单元格的范围,并将其插入到 VBA代码 .

📌 阶梯

1.首先,按 ALT+F11 键盘上的 VBA编辑器 .

2.点击 插入> 模块 .

3.然后,输入以下代码。

 Sub ConvertTextToNumber() With Range("B5:B14") .NumberFormat = "General" .Value = .Value End With End Sub 

4.保存该文件。

5.然后,按 ALT+F8 它将打开。 宏观 对话框。

6.选择 转换文本为数字 并点击 运行。

最后,这段代码将把我们的文本转换为数字。

阅读更多。 如何在Excel VBA中把字符串转换成数字

2.带循环和CSng的VBA代码,将文本转换为数字

在这个方法中,我们使用的是 循环 证券公司 职能。 证券公司 函数基本上接受任何文本作为参数,并将其转换为单个数字。 我们的循环将遍历所选列的每一个单元格。 之后,我们将把每个单元格的值传递给 证券公司 函数,将其从文本转换为数字。

📌 阶梯

1.首先,按 ALT+F11 键盘上的 VBA编辑器 .

2.点击 插入> 模块 .

3.然后,输入以下代码。

 Sub ConvertUsingLoop() For Each r In Sheets("Loop&CSng").UsedRange.SpecialCells(xlCellTypeConstants) If IsNumeric(r) Then r.Value = CSng(r.Value) r.NumberFormat = "General" End If Next End Sub 

4.保存该文件。

5.然后,按 ALT+F8 它将打开。 宏观 对话框。

6.选择 转换使用循环 并点击 运行。

正如你所看到的,我们已经用这个VBA代码将我们的文本转换成了数字。

类似读物

  • 在Excel中批量转换文本为数字(6种方法)
  • 如何在Excel中使用VBA将字符串转换为长字符串(3种方法)
  • 在Excel VBA中把字符串转换成双数(5种方法)
  • 如何修复Excel中转换为数字的错误(6种方法)

3.在Excel中为动态范围将文本转换为数字

现在,以前的方法是针对选定的范围,这意味着你必须在代码中手动输入单元格的范围。 但有时你的数据集可能很大,在这种情况下,你必须记住单元格的范围。 这个方法将克服这个问题。 我们知道我们的数据集从 细胞B5 但我们不知道它可能在哪里结束。

因此,我们动态地识别最后使用的有数据的excel行,使用 Cells(Rows.Count, "B").End(xlUp).Row 它返回最后一个非空行号,我们将其与""连接起来。 B5:B ".

📌 阶梯

1.首先,按 ALT+F11 键盘上的 VBA编辑器 .

2.点击 插入 > 模块 .

3.然后,输入以下代码。

 Sub ConvertDynamicRanges() With Range("B5:B" & Cells(Rows.Count, "B").End(xlUp).Row) .NumberFormat = "General" .Value = .Value End With END Sub 

4.保存该文件。

5.然后,按 ALT+F8 它将打开。 宏观 对话框。

6.然后选择 转换动态范围 并点击 运行。

正如你所看到的,我们成功地使用VBA代码将文本转换为数字。

💬 需要记住的事情

✎这里,我们的数据集使用的是B列。 如果你的数据在不同的列中,请相应改变VBA代码中的单元格范围。

✎ VBA代码将只在活动工作表上工作。

总结

最后,我希望本教程为你提供了关于在Excel中使用VBA代码将文本转换为数字的有用知识。 我们建议你学习并将所有这些说明应用于你的数据集。 下载练习工作簿并自己尝试这些。 此外,欢迎在评论区提出反馈意见。 你的宝贵反馈使我们有动力创造这样的教程。不要忘记查看我们的网站 独家专访 遇到各种与Excel有关的问题和解决方案。

Hugh West is a highly experienced Excel trainer and analyst with over 10 years of experience in the industry. He holds a Bachelor's degree in Accounting and Finance and a Master's degree in Business Administration. Hugh has a passion for teaching and has developed a unique teaching approach that is easy to follow and understand. His expert knowledge of Excel has helped thousands of students and professionals worldwide improve their skills and excel in their careers. Through his blog, Hugh shares his knowledge with the world, offering free Excel tutorials and online training to help individuals and businesses reach their full potential.