2015-12-17 3 views
0

вот моя проблема: Я разбираю xml используя excel VBA. Я открываю XML-файл как обычный файл excel, затем перехожу к колонке, которая мне интересна.Parsing a Number

Клетки в этой колонке - 16 символов.

Итак, я разбираю каждый из этих символов с помощью функций «Влево» и «Вправо» и сохраняю их в новом файле.

В основном эти 16 символов являются числовыми, а иногда и альфа-символами.

пример 1111000011110000 или 1111YYYY00001111

при разборе 1111YYYY00001111 - я получаю правильный вывод,

как в новом файле Cell (1,1) = 1 Cell (1,1) = 1 ячейка (1,2) = 1 ячейка (1,3) = 1 ячейка (1,4) = 1 ячейка (1,5) = Y и т. Д.

Но когда я разбираю 1111000011110000 - я не получаю правильный выход

Я получаю Cell (1,1) = 1 Cell (1,2) =. Ячейка (1,3) = 1 Ячейка (1,4) = 1 Ячейка (1,5) = 1 Ячейка (1,6) = 0

Я попытался поместить NumberFormat = "0" для столбца, который я был синтаксический анализ, но все же я получаю тот же результат.

Я также попытался поместить переменные отладки и сохранил их как строки, двойное целое, но я не смог пройти его.

Вот мой код:

Workbooks.Add 
strip_concat = ActiveWorkbook.Name 
Workbooks(strip_concat).Sheets(1).Cells(1, 1) = "Subid" 
Workbooks(strip_concat).Sheets(1).Cells(1, 2) = "Strip#" 
Workbooks(strip_concat).Sheets(1).Cells(1, 3) = "X" 
Workbooks(strip_concat).Sheets(1).Cells(1, 4) = "Y" 
Workbooks(strip_concat).Sheets(1).Cells(1, 5) = "Reject Code" 
Workbooks(strip_concat).Sheets(1).Cells(1, 6) = "X-Y" 
Workbooks.OpenXML Filename:=xml_file 
stripfile = ActiveWorkbook.Name 
For C = 3 To strip_col - 1 
    r = 1 
     Do 
     Y = r 
     x = C - 2 
     Workbooks(strip_concat).Sheets(1).Cells(A, 3) = x 
     Workbooks(strip_concat).Sheets(1).Cells(A, 4) = Y 
     Workbooks(strip_concat).Sheets(1).Cells(A, 6).NumberFormat = "@" 
     Workbooks(strip_concat).Sheets(1).Cells(A, 6) = x & "-" & Y 
     Workbooks(strip_concat).Sheets(1).Cells(A, 1) =  Workbooks(stripfile).Sheets(1).Cells(C, Amkor_id_col) 
     Workbooks(strip_concat).Sheets(1).Cells(A, 2) = ExtractElement(Workbooks(stripfile).Sheets(1).Cells(C, Strip_num_col), 2, ".") 
     Workbooks(strip_concat).Sheets(1).Cells(A, 5) = Right(Left(Workbooks(stripfile).Sheets(1).Cells(C, Defect_data_col + i), r), 1) 
     r = r + 1 
     A = A + 1 

     Loop Until (r > 16) 

     If ((x Mod 13) = 0) Then i = i + 1 
    Next C 

из XML-файла 1131111111111111

+0

Какие функции вы используются для анализа значения? – OpiesDad

+0

Вам нужно будет опубликовать свой код для его отладки. Однако моя догадка - это вопрос формата –

+0

Что такое * как в новом файле Cell (1,1) = 1 Ячейка (1,1) = 1 * должна означать? Какой код вы используете? – pnuts

ответ

0

Я получил это работает .. Это то, что я сделал

Dim x as variant 
x = (Workbooks(stripfile).Sheets(1).Cells(C, Defect_data_col + i).Text 
Workbooks(strip_concat).Sheets(1).Cells(A, 5) = Right(Left(x,r),1 
Смежные вопросы