2015-06-15 5 views
0

У меня есть файл первенствовать, который выглядит следующим образом:(EXCEL VBA) Как удалить запятые и пробелы из вывода txt?

3001 T81 90300010 001

3001 T81 90300011 001

и вопрос, что некоторые из чисел номера хранятся в формате TXT ,

Также есть строки: "T81"

мне нужен выведенный текстовый файл, чтобы выглядеть следующим образом:

3001T8190300010001

нет мест, цитаты и т.д.

I смог выполнить этот сценарий, чтобы выполнить большую часть работы:

Dim myFile As String, rng As Range, cellValue As Variant, I As Integer, j As Integer 

myFile = Application.DefaultFilePath & "\test_data_output.txt" 
Set rng = Selection 

Open myFile For Output As #1 

For I = 1 To rng.Rows.Count 
    For j = 1 To rng.Columns.Count 

cellValue = rng.Cells(I, j).Value 

If j = rng.Columns.Count Then 
    Write #1, cellValue 
Else 
    Write #1, cellValue, 
End If 

    Next j 
Next I 

Close #1 

Теперь его выход не совсем совершенен:

3001, "T81", 90300010, "001"

3001, "T81", "90300011", "001"

ответ

1

в строке, где вы установили CellValue, просто продолжайте добавлять строки вместе (преобразование значения в строки):

cellValue = cellValue + Cstr(rng.Cells(I, j).Value) 

Тогда между следующей^и следующий I, сброс CellValue:

Next j 
    cellValue = "" 
Next I 
+0

Это почти получилось ... дали это: "3001", "3001T81", "3001T8190300011", "3001T8190300011001" – Dasman

+0

я использовал печать! что, похоже, решает все проблемы. Также изменил цикл, чтобы написать последний cellbyValue! Благодаря! – Dasman

+1

Да, это была моя ошибка. Я думал, что вы только печатаете конкретный текст с вашим IF-заявлением, просто поняли, что ELSE получит его в любом случае. Рад, что смог помочь! – TMH8885

1
Dim v as Variant 

v = rng.Value 

For i = LBound(v,1) to UBound(v,1) 
    Write #1, Replace(Replace(Join(WorksheetFunction.Index(v,i,0),""),",","")," ","") 
Next 
+0

Где в коде должно соответствовать это? Замена части If EndIf? – Dasman

+0

Он должен заменить ваши циклы For. –

+0

Это сработало для вас? –

Смежные вопросы