强制VBA使用英国本地化

我用我创build的电子表格碰到了一个问题。 它在我的个人电脑上工作正常,但我知道在办公室的其他个人电脑有美国本地化。 有没有办法强制VBA检查使用英国本地化的东西?

我遇到的问题是,作为macros的一部分,我使用“文本到列”来确保input的date显示为date,而不是数字或文本。 在我的电脑上,它似乎工作正常,但我知道我把它设置为英国本地化。

其他人有问题,不知道是否是英国本地化。 而不是在检查其他人的本地化或者坚持说他们在他们的计算机上有英国本地化,这是理想的,如果我可以在VBA中join一行额外的代码来强制在这个macros中完成的任何事情都可以在英国本地化。

问题本身就是该计划将英国格式的date转换为美国格式。 当文本到列的阶段发生在macros中时,似乎就发生了。

有没有办法让VBA自动检查是否是英国的本地化,如果不是,那就把它改成英国的本地化,最后把它改回来? 我不想强制每台电脑都有英国本地化,因为它可能会导致其他问题或惹恼用户 – 这绝对是不可取的!

干杯!

将date复制到matrix时,我有类似的问题。 为了避免误导,我使用DateSerial(yy,mm,dd)将date转换为数字,然后将其格式化为在电子表格上显示时的date。 所有计算工作正常(即networking日)。

好的,所以我得出的结论是,这不仅仅是一个本地化问题。 我已经检查了办公室里的另一台电脑,这台电脑设置了英国本地化,并在那里复制。

我遇到的这个问题的两个可能的解决scheme是:

首先,Excel将date存储为一个单独的标识符,使用用户inputdate – 计划是让用户单击“selectdate范围”框,该框将调用用户表单“selectdate”。 这将包含六个下拉框 – 两组三个select日,月和年。 date将是数字,月份文本,年份数字,因为这将意味着用户和Excel不会混淆哪个是哪个。

第二个解决scheme是让excel将date存储为DDMMMYY – 例如01jan2015。 这是我的一个同事提出的一个替代解决scheme,但正如我打算在某个时候自学用户表单,现在可能了!

希望这可以帮助任何人有同样的问题:)

编辑-

结束使用Trevor Eyrebuild议的解决scheme这里: 在VBA的文本框中为用户表单格式化MM / DD / YYYYdate 。 这是优雅和有用的。

Guyz,

有一个非常真棒的本地function:

  DatePart("d", "01/08/2015") will return you the day DatePart("m", "02/08/2015") will return you the month 

这个function显然考虑到本​​地设置。 这个function解决了我所有的问题,当我不得不把我的代码发送到其他地点

一个非常糟糕的解决scheme是使用:

  day=Split("somedate","someseparator") 

希望这可以帮助