有没有一种方法可以使用VBA更改VBA生成的工作表中的语言?

时间:2019-07-29 08:04:38

标签: excel vba

我被分配了一个工作中的项目来开发一个Macro,该Macro将自动从Excel表中获取财务数据并为客户生成贷方通知单和发票。我已经开发了宏,它可以按应有的方式工作,但是我遇到的问题是每张发票所使用的语言。

在生成贷方通知单时,宏将从财务数据表中获取发票的发行月份,然后将其显示为向客户发行信用的月份。也就是说,客户要求在一段时间内(例如2019年2月-2019年4月)对交易进行部分退款,其显示为:

February 2019 (02-19)     -20.20
March 2019 (03-19)        -32.03
April 2019 (04-19)        -24.21

问题是我的主要工作语言是英语,但是我的公司在多个欧洲市场工作,并且发票和贷方通知单必须以客户所在市场的语言显示。

因此,如果意大利客户请求发票,则显示的月份必须列为

Febbraio 2019 (02-19)     -20.20
Marzo 2019 (03-19)        -32.03
Aprile 2019 (04-19)       -24.21

但是,当运行宏时,它仍以英语显示发行月份,而应以市场语言显示。使用此宏创建的所有发票和贷方票据的全部均以正确的语言生成,但是由于宏从数据表中提取了发行月份,因此它会自动以英语显示它们。

有什么方法可以确保以所需的语言显示发行月份?

我已经知道可以更改整个工作簿的语言设置,但是仍然遇到相同的问题,因为每次运行宏以确保发布月份正确时,都必须手动更改发布语言?

1 个答案:

答案 0 :(得分:0)

要在其他区域设置中设置日期格式,您需要为所需的单元格范围更改日期的数字格式。例如。格式化单元格,按 Ctrl + 1 会出现以下对话框,然后为所需国家/地区选择区域设置(“ Gebietsschema” )。

enter image description here 图片1:更改日期的区域设置(抱歉,德语屏幕截图)。

或者使用Range.NumberFormat property通过VBA格式化单元格:

.NumberFormat = "[$-it-IT]d mmmm yyyy;@"

请注意,如果您的日期是实际日期值,那么这两种方法都可以使用,但是如果您的日期是文本,则这两种方法都无法使用。如果它们是文本,则需要将其更改为真实日期。