Option Explicit
'Define a key registry path
Dim strComputer
Dim objRegistry
Dim strKeyPath
Dim strValueName
Dim getValue
Dim regKeyPath
Dim strLocaleName, strCountry, strshortDateValue, strlongDateValue, strshortTimeValue, strlongTimeValue, strfirstDayOfWeekValue
Const HKEY_CURRENT_USER = &H80000001
strComputer = "."
Set objRegistry = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv")
regKeyPath = "Control Panel\International"
strLocaleName = "en-US"
strCountry = "United States"
strshortDateValue = "M/d/yyyy"
strlongDateValue = "dddd, MMMM d, yyyy"
strshortTimeValue = "h:mm tt"
strlongTimeValue = "h:mm:ss tt"
strfirstDayOfWeekValue = "6"
objRegistry.SetStringValue HKEY_CURRENT_USER, regKeyPath, "LocaleName", strLocaleName
objRegistry.SetStringValue HKEY_CURRENT_USER, regKeyPath, "sCountry", strCountry
objRegistry.SetStringValue HKEY_CURRENT_USER, regKeyPath, "sShortDate", strshortDateValue
objRegistry.SetStringValue HKEY_CURRENT_USER, regKeyPath, "sLongDate", strlongDateValue
objRegistry.SetStringValue HKEY_CURRENT_USER, regKeyPath, "sShortTime", strshortTimeValue
objRegistry.SetStringValue HKEY_CURRENT_USER, regKeyPath, "sTimeFormat", strlongTimeValue
objRegistry.SetStringValue HKEY_CURRENT_USER, regKeyPath, "iFirstDayOfWeek", strfirstDayOfWeekValue
WScript.Echo "Successfully changed system regional settings."
Этот сценарий будет изменить региональные настройки в реестре. Используйте с осторожностью. Это изменится на США, поэтому, если вы намереваетесь использовать этот скрипт, убедитесь, что знаете, какие настройки по умолчанию находятся перед их изменением. Простое изменение настроек на панели управления не будет работать.
Сценарий, указанный ниже, снова изменит все обратно в Великобританию.
Option Explicit
'Define a key registry path
Dim strComputer
Dim objRegistry
Dim strKeyPath
Dim strValueName
Dim getValue
Dim regKeyPath
Dim strLocaleName, strCountry, strshortDateValue, strlongDateValue, strshortTimeValue, strlongTimeValue, strfirstDayOfWeekValue
Const HKEY_CURRENT_USER = &H80000001
strComputer = "."
Set objRegistry = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv")
regKeyPath = "Control Panel\International"
strLocaleName = "en-GB"
strCountry = "United Kingdom"
strshortDateValue = "dd/MM/yyyy"
strlongDateValue = "dd MMMM yyyy"
strshortTimeValue = "HH:mm"
strlongTimeValue = "HH:mm:ss"
strfirstDayOfWeekValue = "0"
objRegistry.SetStringValue HKEY_CURRENT_USER, regKeyPath, "LocaleName", strLocaleName
objRegistry.SetStringValue HKEY_CURRENT_USER, regKeyPath, "sCountry", strCountry
objRegistry.SetStringValue HKEY_CURRENT_USER, regKeyPath, "sShortDate", strshortDateValue
objRegistry.SetStringValue HKEY_CURRENT_USER, regKeyPath, "sLongDate", strlongDateValue
objRegistry.SetStringValue HKEY_CURRENT_USER, regKeyPath, "sShortTime", strshortTimeValue
objRegistry.SetStringValue HKEY_CURRENT_USER, regKeyPath, "sTimeFormat", strlongTimeValue
objRegistry.SetStringValue HKEY_CURRENT_USER, regKeyPath, "iFirstDayOfWeek", strfirstDayOfWeekValue
WScript.Echo "Successfully changed system regional settings."
Если вы не храните форматированные строки вместо фактических значений даты и времени в книге, Excel должен использовать формат, определенный в региональных настройках системы, для * отображения * значения. Фактически это не изменяет способ хранения данных. Почему, по-вашему, вам нужно это делать? –
Если вы посмотрите на доступные предустановленные форматы даты в Excel, вы заметите пару в верхней части, которая имеет звездочку (например, '*') в качестве символа префикса. * «Форматы даты, начинающиеся со звездочки, реагируют на изменения в региональных настройках даты и времени, которые указаны для операционной системы». * – Jeeped
@Ansgar Wiechers В основном, что происходит, я получаю файл от американского аналога, который экспортируется как excel, но фактический файл - html, так как это необходимо для подачи импорта SQL-сервера (снова в США), я должен сделать saveas .xls в файле, а затем импортировать его на SQL-сервер. Сервер ожидает, что даты будут в формате США. Поскольку я базируюсь в Великобритании, excel изменяет формат даты с мм/дд на дд/мм. Теперь, благодаря вам, я могу запустить vbs для сохранения файла, но я надеялся включить в него также изменение области системы. В противном случае использование VBS для saveas xls бесполезно. – Saf