Цикл не очищает кавычки

У меня есть код, который просматривает список текстовых файлов, открывает их в Excel и очищает из них кавычки. Однако по какой-то загадочной причине, которую я не понимаю, без кавычек не сохраняется. Я пробовал разные способы очистки кавычек, но это все равно не работает.

Мне нужен код, чтобы открывать другие текстовые файлы и удалять кавычки из каждого из них.

Dim pathfile As String
Dim pathway As Workbook
Dim localcode As String
Dim wb As Workbook
Dim wayfile As String
Dim i As Integer

Application.ScreenUpdating = False
Application.DisplayAlerts = False

wayfile = "pathfile"
Set wb = Workbooks.Open(wayfile)
Range("A1").Select

i = 1

Do While Not IsEmpty(Range("a" & i))
    Math = ActiveCell
    pathfile = "pathfile"
    pathfile = Replace(pathfile, "math", Math)
    Set pathway = Workbooks.Open(pathfile)
    Range("A1").Select

    Do While ActiveCell.Value <> ""
        ActiveCell.Replace What: = """", Replacement: = "", _
        LookAt:=xlPart, SearchOrder:=xlByRows, _
        MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2
        ActiveCell.Offset(1, 0).Select
    Loop

    pathway, saveas fileformat:=xlTextWindows
    pathway.Close
    pathfile = "pathfile2"
    pathfile = Replace(pathfile2, "math", Math)
    Set pathway = Workbooks.Open(pathfile)
    Range("A1").Select

    Do While ActiveCell.Value <> ""
        ActiveCell.Replace What: = """", Replacement: = "", _
        LookAt:=xlPart, SearchOrder:=xlByRows, _
        MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2
        ActiveCell.Offset(1, 0).Select
    Loop

    pathway, saveas fileformat:=xlTextWindows
    pathway.Close
    Set wb = Workbooks.Open(camin)
    Range("A1").Select
    ActiveCell.Offset(1, 0).Select
    i = i + 1
Loop

Application.ScreenUpdating = True
Application.DisplayAlerts = True

wb.Close

MsgBox "ok"

Я не думаю, что ваш код сможет пройти компилятор VBA. что это, это не способ запустить его. например. ReplaceFormat:=FalseFormulaVersion:=xlReplaceFormula2 . Какие данные по полковнику А? Как создать минимальный воспроизводимый пример

taller 16.04.2024 04:41

Да, pathway, saveas fileformat:=xlTextWindows выглядит круто.

Enigmativity 16.04.2024 08:02
Преобразование HTML-таблицы в профессиональный документ Excel
Преобразование HTML-таблицы в профессиональный документ Excel
Это самый простой способ создания Excel из HTML-таблицы.
Импорт excel в laravel в базу данных
Импорт excel в laravel в базу данных
Здравствуйте, дорогой читатель, в этой статье я расскажу практическим и быстрым способом, как импортировать файл Excel в вашу базу данных с помощью...
1
2
69
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Мне нужен код, чтобы открывать другие текстовые файлы и удалять кавычки из каждого из них.

Для этого вам действительно не нужен Excel. Непосредственно откройте текстовый файл, замените текст и запишите его обратно в текстовый файл. Это то, что вы пытаетесь?

Option Explicit

Sub Sample()
    Dim MyData As String
    Dim FlName As String
        
    '~~> Change this to the relevant text file
    FlName = "C:\Users\routs\Desktop\test.txt"
        
    '~~> Open text file in 1 go and read it
    Open FlName For Binary As #1
    MyData = Space$(LOF(1))
    Get #1, , MyData
    Close #1
    
    '~~> Replace double quotes
    MyData = Replace(MyData, Chr(34), "")
        
    '~~> Write back to text file.
    Open FlName For Output As #1
    Print #1, MyData
    Close #1
End Sub

Если у вас есть список текстовых файлов, вы можете преобразовать описанную выше процедуру в файл Function.

Split/Join в данном случае не требуется. Replace(MyData, Chr(34), "") может сэкономить время.
taller 16.04.2024 08:03

О да! Ты прав! @выше. Могу ли я с уверенностью винить в этом отсутствие утреннего кофе? (обновил пост)

Siddharth Rout 16.04.2024 08:09

Абсолютно! Это классический случай «синдрома перед кофе», который снова проявляется.

taller 16.04.2024 08:13

Сработало безупречно, большое спасибо. Я просто не понимаю, как превратить это в функцию и как это работает при применении к другим файлам. У меня есть много других текстовых файлов, из которых нужно удалить кавычки, и я хочу это систематизировать.

Matheus Donizeti 16.04.2024 19:46

Поместите код либо в Private Sub ReplaceQuotes(Fl as String), либо в Private Funtion ReplaceQuotes(Fl as String) as Boolean, а затем просто передайте имя файла с путем к процедуре или функции в цикле. Используйте функцию, если вы хотите проверить, была ли произведена какая-либо замена, иначе просто используйте эту процедуру. @MatheusDonizeti

Siddharth Rout 16.04.2024 22:10

Ты действительно помог мне, друг, но я понятия не имею, как это сделать, я немного поискал, но так и не понял. В любом случае, большое спасибо

Matheus Donizeti 17.04.2024 15:56

Другие вопросы по теме