Код не распознает нечетные числа, не помещая их в столбец B - PullRequest
0 голосов
/ 21 октября 2019

Задача - написать код, который будет импортировать текст из файла .txt. В этой задаче я должен отсортировать пару и нечетные числа в разных столбцах A, B. Код работает нормально, копируя работу парных чисел (из файла .txt), но даже не копируя нечетные числа.

Попытка изменить формулу, это единственное, что работает.

Close #1
Dim xopen As Variant
Dim xclose As Variant

xopen = Application.GetOpenFilename

If xopen = "False" Then
    MsgBox "error nav fails"
Else
    Open xopen For Input As #1
    i = 1
    j = 1
    Do Until EOF(1)
        Line Input #1, st

        If IsNumeric(st) = False Then
            MsgBox "error nav skaitlis(number)"
            Close #1
            Close #2
            Exit Do
        End If

        Line Input #1, st
        If st > 0 Then
            Cells(i, 1) = st
            i = i + 1
        Else
            If Val(st) Mod 2 = 1 Then
                Cells(j, 2).Value = st
                j = j + 1
            End If
        End If
    Loop

    Close #1
    xclose = Application.GetSaveAsFilename(fileFilter:="Text Files (*.txt),*.txt")
    ThisWorkbook.SaveAs Filename:=xclose, FileFormat:=xlText
End If

Ответы [ 2 ]

1 голос
/ 21 октября 2019

Ваша проблема в логике If - Else, попробуйте этот код и посмотрите объяснение ниже:

If st > 0 Then
    If st Mod 2 = 0 Then
        Cells(i, 1).Value2 = st
        i = i + 1
    Else
        Cells(j, 2).Value2 = st
        j = j + 1
    End If
End If

Способ написания вашего кода можно вводить в оператор Else только тогда, когда ваш номерst - это <= 0. Но вы действительно хотите проверить, больше ли число, чем 0, и если это правда, разделите числа на нечетные и четные числа. В основном ваш Else был не в том месте.

0 голосов
/ 21 октября 2019

'' 'Линейный вход # 1, st

    If IsNumeric(st) = False Then
        MsgBox "error nav skaitlis(number)"
        Close #1
        Close #2
        Exit Do
    End If

' '' Это было причиной проблемы, удаление которой решило бы ее и позволило бы мне скопировать нечетные числа. Это продолжало проходить через эту фазу. И не позволил бы этому пройти мимо.

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