>source

저는 VBA의 멍청한 놈이고 이 작업을 수행하는 데 문제가 있습니다.

이 경우 열 C를 읽고 텍스트 시작 부분에서 다른 키워드를 찾는 VBA 매크로를 수행해야 합니다. 단순화를 위해 KW1 및 KW2라고 부를 수 있습니다. 찾은 키워드를 기반으로 D열을 텍스트로 수정해야 합니다. 따라서 C2 셀에서 "KW1"을 찾은 경우 이 경우 D열에 열을 추가해야 하며 D2 셀에는 "Keyword1"이라는 텍스트가 있습니다. 매우 간단한 논리이지만 범위를 처리하는 방법을 모르겠습니다. 열 C에서 "for each" 루프를 수행하고 있지만 이 열을 참조하는 방법이나 for each를 사용하여 다른 열을 편집하는 방법을 모릅니다. 나는 그것이 간단하다는 것을 알고 있지만 그것을 할 방법을 찾을 수 없었습니다.

다음은 더미 문서의 사진입니다. 3열과 4열 사이에 열을 추가하고 이 개념을 구현해야 합니다.

아래는 제가 만든 code입니다. 나는 현재 myRange 변수 종류가 말이 안 된다는 것을 알고 있지만 그것을 작동시키려고 여러 번 수정했기 때문에 더 이상 무엇을 해야할지 모르겠습니다.

Sub Keyword()
    Columns("D:D").Select
    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    ActiveCell.FormulaR1C1= "Column 3.5"
    Range("I3").Select
    myRange= Worksheets("Sheet1").Selection.CurrentRegion.Select
    LR= Cells(Rows.Count, 1).End(xlUp).Row
    For Each cell In myRange
        If InStr(LCase(cell.Value), LCase("KW1:")) <> 0 Then
            cell.Value= "Keyword1"
        End If
    Next
End Sub

  • 답변 # 1

    다음 방법이 작동해야 합니다(테스트되지 않음)

    방법 1: 루프 행

    Sub Keyword()
        myRange=Range("A1").CurrentRegion
        For Each row In myRange.rows
                If InStr(LCase(cells(row,3).Value), LCase("KW1:")) <> 0 Then
                    cells(row,4).Value= "Keyword1"
            end with
        Next
    End Sub
    

    방법 2: C열의 루프 셀

    Sub Keyword()
        myRange= Range("C2:C" &amp;
     Cells(Rows.Count, 1).End(xlUp).Row)
        For Each cell In myRange.cells
            If InStr(LCase(cell.Value), LCase("KW1:")) <> 0 Then
                cell.offset(0,1).Value= "Keyword1"
            End If
        Next
    End Sub
    

    이것이 얼마나 논리적으로 작동하는지 알 수 있지만 If 문: 런타임 오류 '424': 개체 필요에서 런타임 오류가 발생하므로 테스트할 수 없습니다. 이 문제를 해결하는 방법에 대한 아이디어가 있습니까? 감사 해요.

    VBANoob2022-02-14 13:28:00

    @VBANoob은 방금 내 답변을 편집했습니다. 첫 번째 방법에 .rows를 추가하고 두 번째 방법에 .cells를 추가했습니다. (다시 테스트하지 않았으므로 전화로 죄송합니다.)

    earthguestg2022-02-14 13:33:19
  • 이전 java : 웹 앱을 처음 시작할 때 데이터베이스를 만들고 채우려면 어떻게 해야 합니까?
  • 다음 Spring Boot Mongodb는 문서의 중첩 배열을 업데이트합니다.