Экспорт наборов строк из Excel в текстовые файлы - PullRequest
0 голосов
/ 06 февраля 2020

Моя цель состоит в том, чтобы взять 99 строк в группах по 10, каждая из которых содержит 9 строк и 2 столбца, чтобы создать текстовые файлы.

Этого можно добиться с помощью циклов, разбив операцию записи в 9-й строке и затем возобновление на 10-й строке.

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

Когда я запускаю следующий код, ничего не происходит. Когда я отлаживаю, он пропускает структуру l oop. Когда я запускаю его только для одного файла, содержащего все строки, он работает отлично.

0.8641  0.8654
0.6605  0.8269
0.5828  0.8269
0.9985  1.0000
0.7527  0.9423
0.6641  0.9423
1.1329  1.1346
0.8756  1.0962
0.7590  1.0769
0.9174  0.8836
0.7557  0.8443
0.5986  0.8164
0.9984  1.0000
0.8085  0.9656
0.6809  0.9443
1.0972  1.1328
0.8680  1.0902
0.7453  1.0623
0.8665  0.8714
0.6385  0.8429
0.5398  0.8143
Private Sub CommandButton1_Click()

' Variable declaration

Dim FilePath As String
Dim CellData As String
Dim Folder As String
Dim del As String
Dim LastCol As Long
Dim LastRow As Long
Dim FileNum As Integer
Dim count As Integer
Dim counter As Integer
Dim i, j, k As Integer

' Getting the last row and column from the workbook

LastCol = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Column

LastRow = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row

Foler = "C:\TRNSYS1832-bit\TRNSYS18\MyProjects\Main project\Chiller and ice storage data\Excel\"

del = vbTab

count = 9

conuter = 1

For k = 1 To k = LastRow

    FilePath = Folder & "Data" & counter & ".txt"        ' This is the final name example - Data1.txt

    FileNum = FreeFile ' FreeFile so that I don't have to associate it with a specific number

    Open FilePath For Output As #FileNum    ' Opening the file for writing 

    Print #FileNum, "-5" & vbTab & "0" & vbTab & "5" & " !Chilled water leaving temperature (C)"
    Print #FileNum, "35" & vbTab & "45" & vbTab & "50" & " !Cooling water entering temperature (C)"

    For i = 1 To count

        For j = 1 To LastCol

            If j = LastCol Then
                CellData = CellData & Round(Cells(i, j).Value, 4)
            Else
                CellData = CellData & Round(Cells(i, j).Value, 4) & del
            End If

        Next j

        Print #FileNum, CellData
        CellData = ""

    Next i

    Close #FileNum

    i = count + 1
    count = count + 9
    counter = counter + 1

Next k

End Sub

1 Ответ

0 голосов
/ 06 февраля 2020

Может ли это быть так же просто, как неправильное написание в папке в следующей строке кода?

Foler = "C:\TRNSYS1832-bit\TRNSYS18\MyProjects\Main project\Chiller and ice storage data\Excel\"

Глядя на остальную часть кода, для папки не задано ничего.

В этой строке также есть орфографическая ошибка:

conuter = 1

При первом использовании counter = 0 в первый раз устанавливается значение 1 через l oop.

Другая ошибка Я думаю:

For k = 1 To k = LastRow

Должно быть

For k = 1 To LastRow
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...