VBA: Как исправить длинные числа Научная запись в 140 файлах CSV UTF-8? - PullRequest
1 голос
/ 05 октября 2019

Я работаю над главным листом, который содержит 50 000 пользователей из 140 отделов. Поэтому я разделил их на 140 листов, используя приведенный ниже сценарий № 1, а затем сохранил их в виде отдельных файлов CSV, используя приведенный ниже сценарий № 2.

Моя проблема заключается в том, что в главном листе один столбец содержит арабские имена и два других столбца. содержат длинные числа> 15. Таким образом, есть два сценария:

  1. Когда я сохраняю файлы как xlCSVUTF8, арабские имена в порядке, но длинные числа преобразуются, например, в 9.71434E + 14.
  2. Когда я сохраняю файлы как xlCSVMac, длинные цифры в порядке (без научных обозначений), но арабские имена превращаются в ?????.

Я перепробовал все CSVформаты, но только UTF-8 принимает арабский язык.
Однозначное решение мастера импорта текста неэффективно, так как у меня так много файлов.

Script # 1

Sub SplitandFilterSheet()
    Dim Splitcode As Range
    Sheets("Master").Select
    Set Splitcode = Range("Splitcode")

    For Each Cell In Splitcode
        Sheets("Master").Copy after:=Worksheets(Sheets.Count)
        ActiveSheet.Name = Cell.Value

        With ActiveWorkbook.Sheets(CStr(Cell.Value)).Range("MasterData")
            .AutoFilter Field:=2, Criteria1:="<>" & Cell.Value, Operator:=xlFilterValues
            .Offset(1, 0).SpecialCells(xlCellTypeVisible).EntireRow.Delete
        End With

        ActiveSheet.AutoFilter.ShowAllData
    Next Cell
End Sub

Скрипт № 2

Sub CreateNewWBS()
    Dim wbThis As Workbook
    Dim wbNew As Workbook
    Dim ws As Worksheet
    Dim strFilename As String

    Set wbThis = ThisWorkbook
    For Each ws In wbThis.Worksheets
        strFilename = wbThis.Path & "/" & ws.Name
        ws.Copy
        Set wbNew = ActiveWorkbook
        wbNew.SaveAs strFilename, xlCSVUTF8
        wbNew.Close
    Next ws
End Sub

Есть ли способ исправить все CSV-файлы и иметь арабские имена и цифры в порядке?

...