excel - 有没有办法使用 VBA 更改 VBA 生成的工作表中的语言?
问题描述
我在工作中被分配了一个项目来开发一个宏,它会自动从 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
然而,当运行宏时,它仍然以英文显示发行月份,而它应该以市场语言显示。使用此宏创建的所有发票和贷方票据的全部都以正确的语言生成,但由于宏从数据表中获取发行月份,它会自动以英语显示它们。
有什么方法可以确保它以所需的语言显示发行月份?
我已经知道可以更改整个工作簿的语言设置,但我仍然遇到同样的问题,因为每次运行宏时我都必须手动更改发行语言以确保发行月份正确?
解决方案
要在另一个区域设置中格式化日期,您需要更改所需单元格范围的日期数字格式。例如。按Ctrl+格式化单元格1以获取以下对话框,然后为您想要的国家/地区选择区域设置(“Gebietsschema”)。
或者,使用Range.NumberFormat 属性使用 VBA 格式化单元格:
.NumberFormat = "[$-it-IT]d mmmm yyyy;@"
请注意,如果您的日期是真实的日期值,这两种方法都有效,但如果您的日期是文本,则这些方法都无效。如果它们是文本,则需要将它们更改为真实日期。
推荐阅读
- html - 如何更改引导 div 的高度和宽度?
- php - 如何每运行 50 次 foreach 循环将值增加 1
- reactjs - expect(received).toEqual(expected) - 错误
- python - 未安装 excel 的 Pandas read_excel
- java - 带有 Axis2 的 Spring Boot 应用程序 - 找不到 /BOOT-INF/lib/addressing-1.6.2.mar 文件
- angular - Multiple router-outlets and fxHide/fxShow: why does it break my routing?
- javascript - 关于转换对象
- java - How can I programmatically create a @Test with JUnit?
- javascript - Share variables between background page and extension page without chrome.extension.getBackgroundPage()
- operating-system - 是否可以在调度程序的帮助下或在运行时以某种方式更改硬件计时器的时间?