У меня проблема с работой с некоторыми рабочими листами из стороннего веб-сайта.
- таблица доступна на стороннем веб-сайте источника
- рабочий лист, с которым у меня проблемы, - это
EC
рабочий лист в all-euro-data-2009-2010.xls
в этом zipfile
Это список данных футбольных матчей.
Manual Save as CSV
Теперь, когда эта электронная таблица «EC» находится в фокусе, и я перехожу к SAVE AS и выбираю .CSV, тогда электронная таблица сохраняется как CSV, и данные идеальны. то есть даты в столбце «B» и они должны быть такими, какими они должны быть в формате ДД / ММ / ГГГГ.
EG, взято из последнего ряда листа ЕС
EC, 24/04/2010, Tamworth, Ebbsfleet
Это правильно, если я захожу в меню и выбираю «СОХРАНИТЬ КАК», выбираю CSV и принимаю все запросы, чтобы сохранить его в формате CSV, бла-бла, файл CSV сохраняется как
EC, 24/04/2010, Tamworth, Ebbsfleet
Это верно, так как даты в Великобритании дд / мм / гггг
VBA Save as CSV
Теперь сделать все намного проще для себя, так как мне нужно сохранить каждый рабочий лист как файл csv, поэтому я использую приведенный ниже код VBA для автоматического сохранения каждого рабочего листа в текущем каталоге с именем worksheetname.csv (например, EC. csv) каждый раз, когда рабочая книга закрывается, это приводит к изменению дат в столбце B на формат Americam MM / DD / YYYY.
Однако, используя VBA для сохранения в формате CSV, данные заканчиваются как
EC, 4/24 / 2010, Tamworth, Ebbsfleet
Обратите внимание на изменение с британского дд / мм / гггг на ныне американский формат мм / дд / гггг
Как я могу внести изменения в VBA, чтобы сохранить даты в формате, указанном в фактической электронной таблице, т.е. дд / мм / гггг, при сохранении в vba в CSV?
Мне нужна эта опция CSV для работы в VBA, так как эти и многие другие подобные электронные таблицы сохраняются в виде файлов CSV для импорта КАЖДЫЙ ДЕНЬ.
My settings
Я использую Excel 2007 на компьютере с Win 7 (64bit) здесь, в Великобритании.
Я также попытался добавить Local: = True к ws.SaveAs, но это не имело никакого значения. т.е. даты сохраняются как EC, 4/24/2010, Tamworth, Ebbsfleet при сохранении из VBA
Спасибо
Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Alerts_Suppress
ThisWorkbook.Save
Save_All_WorkSheets_As_CSV
Alerts_Enable
ActiveWorkbook.Close False
Application.Quit
End Sub
Sub Save_All_WorkSheets_As_CSV()
Dim Name As String
Dim Current_Directory As String
Dim ws As Worksheet
Dim wb As Workbook
Set wb = ActiveWorkbook
Dim i As Integer
i = 0
Current_Directory = ActiveWorkbook.Path & "\"
For Each ws In wb.Worksheets
Name = Current_Directory & LCase(ws.Name) + ".csv"
ws.SaveAs Name, xlCSV
i = i + 1
Next
End Sub
Sub Alerts_Suppress()
Application.DisplayAlerts = False
End Sub
Sub Alerts_Enable()
Application.DisplayAlerts = True
End Sub