надеюсь, что кто-нибудь может помочь мне с моим кодом VBA.

Теперь написано: если клетка.Значение = "Я" А (ячейка.Смещение (0, 9) = "meenemen") Тогда ...

Я хотел бы, чтобы это было что-то вроде: если клетка.Значение = "Я" А (ячейка.Смещение (0, 9) = "meenemen") или ((ячейка.Смещение (1, 0) = "ja" и (ячейка.Смещение (1, 9) = "meenemen")) Тогда ...

Я сейчас использую: для каждой строки в рнг.Строки Но я хотел бы, чтобы ТОЛЬКО проверял каждый второй ряд (и в другой части моего кодирования каждый 6-й ряд) перед продолжением.

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

У кого-нибудь есть хорошее решение для меня? Заранее спасибо за ваши усилия, чтобы помочь мне.

Часть кода VBA, к которой это относится, теперь выглядит следующим образом:

Sub CheckRange3()

Dim rng As Range Dim row As Range Тусклая ячейка As Range

Установите rng = диапазон ("C47:C66")

Для каждого ряда в рнг.Ряды для каждой ячейки в строке.Клетки Если клетка.Значение = "Я" А (ячейка.Смещение (0, 9) = "meenemen") Тогда

    Dim Name As String
    DateStr = Format(Date, "dd-mm-yy")
    Name = cell.Offset(0, -1).Text & "-" & Range("A44") & " " & DateStr
    cell.Offset(0, 12).Value = Name

    Dim startPath As String
    Dim myName As String

    startPath = "I:\Medische Microbiologie\Virologie\Sequence-resultaten\@In bewerking\"
    myName = cell.Offset(0, 12).Text       ' Change as required to cell holding the folder title

    If myName = vbNullString Then myName = "Testing"

    Dim folderPathWithName As String
    folderPathWithName = startPath & Application.PathSeparator & myName

    If Dir(folderPathWithName, vbDirectory) = vbNullString Then
        MkDir folderPathWithName
    Else
        On Error Resume Next
       'Delete files
        FSO.deletefile MyPath & "\*.*", False
        'Delete subfolders
        FSO.deletefolder MyPath & "\*.*", False
        On Error GoTo 0

    End If

    ThisWorkbook.Sheets("BLAST resultaten LSU-ITS").Range("F6").Value = cell.Offset(0, 6).Text
    ThisWorkbook.Sheets("BLAST resultaten LSU-ITS").Range("A10").Value = cell.Offset(0, -1).Text
    ThisWorkbook.Sheets("BLAST resultaten LSU-ITS").Range("B10").Value = cell.Offset(0, 7).Text
    ThisWorkbook.Sheets("BLAST resultaten LSU-ITS").Range("C10").Value = cell.Offset(0, 1).Text
    ThisWorkbook.Sheets("BLAST resultaten LSU-ITS").Range("E10").Value = cell.Offset(0, 4).Text
    ThisWorkbook.Sheets("BLAST resultaten LSU-ITS").Range("F10").Value = cell.Offset(0, 5).Text
    ThisWorkbook.Sheets("BLAST resultaten LSU-ITS").Range("G10").Value = cell.Offset(0, 8).Text
    ThisWorkbook.Sheets("BLAST resultaten LSU-ITS").Range("E11").Value = cell.Offset(1, 4).Text
    ThisWorkbook.Sheets("BLAST resultaten LSU-ITS").Range("F11").Value = cell.Offset(1, 5).Text
    ThisWorkbook.Sheets("BLAST resultaten LSU-ITS").Range("G11").Value = cell.Offset(1, 8).Text

    ThisWorkbook.Sheets("BLAST resultaten LSU-ITS").Copy
    ActiveWorkbook.SaveAs (startPath & myName & "\BLAST resultaten " & Name)
    ActiveWorkbook.Close

Else
    cell.Offset(0, 12).ClearContents
End If

Следующая ячейка Следующая строка

«FolderInBewerking

End Sub

1 ответ1

0

Вы должны использовать цикл For Next и ключевое слово Step чтобы указать приращение.

Dim rowIterator As Long
For rowIterator = 1 To rng.Rows.Count Step 2 ' Will go through every other row from the first to the last (or last-1 depending on parity of your number of rows)
    Set row = rng.Rows(rowIterator)
    ' Your code
Next rowIterator

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .