Excel VBA将文本转换为数字和日期

Excel VBA将文本转换为数字和日期,excel,vba,Excel,Vba,我有一个工作表,其中包含直接从数据库下载的数据。它包含所有文本,包括文本格式日期和收入。我想将一列文本转换为数字,将一列文本(日期)转换为日期格式,这样我就可以使用SUMIFS()函数检查年份和月份 附加信息:从所附图像中可以看到,在“结束日期”列中,日期均为2016年11月30日格式,用点连接,并采用dd.mm.yyyy表达式,但均为文本 在金额列中,收入的数量实际上是一个欧洲表达式,50000,00实际上意味着50000.00,50000,00是文本格式 目前,我正在使用LEFT(),MI

我有一个工作表,其中包含直接从数据库下载的数据。它包含所有文本,包括文本格式日期和收入。我想将一列文本转换为数字,将一列文本(日期)转换为日期格式,这样我就可以使用
SUMIFS()
函数检查年份和月份

附加信息:从所附图像中可以看到,在“结束日期”列中,日期均为2016年11月30日格式,用点连接,并采用dd.mm.yyyy表达式,但均为文本

在金额列中,收入的数量实际上是一个欧洲表达式,50000,00实际上意味着50000.00,50000,00是文本格式

目前,我正在使用
LEFT()
MID()
RIGHT()
函数提取年、月和日的数字字符串,然后使用DATE()函数转换为日期

对于Amount列数字,我只是使用TexttoColumns进行手动转换

有没有办法在
VBA
中完成这些工作?有人能帮我查一下密码吗?我有一些基本的编程经验,但我以前从未接触过
VBA


万分感谢!我真的很感激

我只会使用Find and Replace函数。突出显示日期列,找到“.”并替换为“/”。那就给你一些日期。您可以对“.”执行相同的操作,并替换为“.”-如果它仍然显示为文本,则可以从中转换为数字。(无论如何,VBA对您来说只是更难的工作)

您可以使用Power Query来实现这一点。不需要编码。启动查询并单击查询编辑器中的功能区图标以转换数据,例如,将逗号替换为点,将类型从文本更改为数字等。每个操作都将使用M语言记录为一个步骤。如果需要,M代码可以被操作,但是对于这样简单的东西,您不需要这样做

当源数据更改时,可以刷新查询


Power Query是Microsoft针对Excel 2010和2013提供的一个免费插件,它作为Get&Transform内置在Excel 2016中。

非常感谢您的回复。没错,我的意思是我可以手工做。但我只是想知道是否有一种方法可以使用VBA自动完成。我在想,如果每次我们更新原始数据表时,这些文本都能自动转换成日期和数字,那就太好了。是的,试试记录宏功能,如果你真的想通过宏来记录我刚才说的话。然后,您可以查看代码并查看它在做什么。在高层,它将是选择范围+行动(这是查找和替换功能)。嗨,gemmo,非常感谢!我将通过录制宏来尝试解决这个问题。干杯如果您有两个屏幕,最好在录制时将VBA编辑器放在另一个屏幕上。然后你就知道是哪个动作产生了代码。这样,您也可以开始识别哪些代码是不必要的,然后开始删除它们。用这种方法你会学得很快。。。你会经常看到同样的代码。论坛上的很多人已经忘记了做一个新手的感觉。