Excel和区域设置

时间:2017-05-05 15:25:56

标签: excel excel-vba ms-office vba

有没有办法禁用excel来读取日期单元格的区域设置? 目前在单元格中呈现的格式对于显示和编辑是不同的,如下面所示:

enter image description here

1 个答案:

答案 0 :(得分:2)

将后续内容放入模块中: 为此,我们需要将用户初始设置存储在公共变量中。这需要放入Module而不是Object

Option Explicit
Public InternationalDateSetting As XlApplicationInternational

然后将其放入ThisWorkbook对象中。当用户打开工作簿时,它会将用户设置设置为公共变量。然后,当用户停用工作簿(即更改为另一个工作簿或其他程序)时,它会将用户设置重置为默认值,然后在用户激活工作簿时将其更改为自定义设置。在执行此操作时,它将控制应用程序设置,但是是特定于工作簿的

Option Explicit
Private Sub Workbook_Open()
    InternationalDateSetting = Application.International(xlMDY)
End Sub
Private Sub Workbook_Activate()
    '' Please look at https://msdn.microsoft.com/en-us/library/office/ff840213.aspx for all settings
    '' Set to true for month-day-year order, false for day-month-year
    Application.International(xlMDY) = True
    '' Or uncomment and use:
    '' 0 = month-day-year
    '' 1 = day-month-year
    '' 2 = year-month-day
    '' You will also need to change the Workbook_Open and Workbook_Deactivate from 'xlMDY' to 'xlDateOrder'

    ' Application.International(xlDateOrder) = 0
End Sub
Private Sub Workbook_Deactivate()
    Application.International(xlMDY) = InternationalDateSetting
End Sub