更改文本号码使用VBA
在最近的任务中,我正在通过VBA在数字列上进行过滤。但是该数字列具有文本格式的数字。当我运行VBA脚本时,它当然不起作用,因为过滤器是一个数字,并且该列具有数字作为文本。在这种情况下,我需要将文本手动转换为数字并保存。然后宏可以完美运行。
但是我想使用VBA脚本将这些文本转换为数字,并且我能够做到。我想分享这一点,就像有人想知道如何使用VBA将文本值转换为数字一样,他们可以看看。
===
使用Range.NumberFormat方法将文本转换为数字这是第一个也是最简单的方法。与直接使用其他方法相比,我更喜欢这种方法,因为它将直接将选定的excel范围转换为数字格式。
因此,如果您具有要转换为文本的固定范围,请使用此VBA代码段。
Sub ConvertTextToNumber() Range("A3:A8").NumberFormat = "General" Range("A3:A8").Value = Range("A3:A8").Value End Sub
当您运行上面的代码时,它将范围A3:A8的文本转换为文本。
如果我们这样编写,此代码看起来会更优雅。
Sub ConvertTextToNumber() With Range("A3:A8") .NumberFormat = "General" .Value = .Value End With End Sub
如何运作?
好吧,这很简单。我们首先将范围的数字格式更改为“常规”。然后,使用VBA将该范围的值放入相同范围。这将完全删除文本格式。很简单,不是吗?
更改动态范围的格式数量
在以上代码中,我们将文本更改为固定范围内的上述代码中的数字,但是大多数情况下并非如此。要将文本转换为多个动态范围,我们可以评估最后使用的单元格或动态选择范围。
外观如下:
Sub ConvertTextToNumber() With Range("A3:A" & Cells(Rows.Count, 1).End(xlUp).Row) .NumberFormat = "General" .Value = .Value End With
在这里,我知道范围从A3开始。但是我不知道它可能在哪里结束。
最近使用的Excel行”,其中包含使用VBA代码段单元格(Rows.Count,1).End(xlUp).Row。它返回我们与“ A3:A”连接的最后使用的行号。
注意:此VBA代码段将在活动工作簿和活动工作表上运行。如果您的代码在多个工作表之间切换,则最好设置预期工作表的范围对象。像这样
Sub ConvertTextToNumber() Set Rng = ThisWorkbook.Sheets("Sheet1").Range("A3:A" & Cells(Rows.Count, 1).End(xlUp).Row) With Rng .NumberFormat = "General" .Value = .Value End With End Sub
上面的代码将始终将文本更改为包含该代码的工作簿的sheet1的编号。
循环和CSng将文本更改为数字另一种方法是循环遍历每个单元格,并使用CSng函数将单元格值更改为数字。这是代码。
Sub ConvertTextToNumberLoop() Set Rng = ThisWorkbook.Sheets("Sheet1").Range("A3:A" & Cells(Rows.Count, 1).End(xlUp).Row) For Each cel In Rng.Cells cel.Value = CSng(cel.Value) Next cel End Sub
VBA For loop迭代范围内的每个单元格,并使用来将每个单元格的值转换为数字链接:/ excel-macros-and-vba-excel-vba中的CSng函数是什么[VBA的CSng函数]。
好的,这是您可以使用VBA在Excel中将文本更改为数字的方法。在对它们进行任何数字运算之前,可以使用这些摘要准备工作表。我希望我能解释得足够。您可以在此处下载工作文件。
如果您对此文本转换为数字或任何其他与excel / VBA相关的查询有任何疑问,请在下面的评论部分中提问。
相关文章:
在Microsoft Excel中使用VBA用自定义数字格式设置数据格式要在excel中更改特定列的数字格式,请使用此VBA代码段。一键将指定格式转换为指定格式。
热门文章:
50 Excel快捷方式以提高生产率更快地完成任务。这50个快捷键将使您在Excel上的工作速度更快。
Excel中的VLOOKUP函数在Excel 2016中为COUNTIF使用此惊人的功能对条件进行计数。您无需过滤数据即可计算特定值。
Countif功能对于准备仪表板至关重要。
如何在Excel中使用SUMIF函数这是仪表板的另一个重要功能。这可以帮助您汇总特定条件下的值。