Member 13773934 Ответов: 2

Попытка создать файл .txt с помощью макросов для копирования результатов из excel в текстовый файл.


Sub Textfile()

Dim FilePath As String
Dim CellData As String
Dim LastCol As Long
Dim LastRow As Long

LastCol = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Column
LastRow = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
CellData = ""
DefaultFilePath = "xyz"

FilePath = Application.DefaultFilePath & "\RPA.txt"
Open FilePath For Output As #2
For i = 1 To LastRow
   For j = 1 To LastCol
      If j = LastCol Then
         CellData = CellData + Trim(ActiveCell(i, j).value)
      Else
         CellData = CellData + Trim(ActiveCell(i, j).value) + "  "
      End If
   Next j
   Write #2, CellData
   CellData = ""
Next i
Close #2

MsgBox ("Done")

End Sub


Что я уже пробовал:

В этой конкретной линии


CellData = CellData + Trim(ActiveCell(i, j).value) + "  "


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

Richard MacCutchan

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

2 Ответов

Рейтинг:
0

Mehdi Gholam

Попробовать следующее :

CellData = CellData + Trim("" + ActiveCell(i, j).value) + "  "


Member 13773934

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

Рейтинг:
0

Wendelius

Если вы пытаетесь объединить данные из ячейки, попробуйте использовать оператор &. Ячейка может содержать числовое значение, которое может вызвать ошибку, если числовое значение пытается быть добавлено к строке. Вы также можете использовать CStr, если хотите.

Иначе говоря

CellData = CellData & CStr(Trim(ActiveCell(i, j).value)) & "  "