저는 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: 루프 행
방법 2: C열의 루프 셀
이것이 얼마나 논리적으로 작동하는지 알 수 있지만 If 문: 런타임 오류 '424': 개체 필요에서 런타임 오류가 발생하므로 테스트할 수 없습니다. 이 문제를 해결하는 방법에 대한 아이디어가 있습니까? 감사 해요.
VBANoob2022-02-14 13:28:00@VBANoob은 방금 내 답변을 편집했습니다. 첫 번째 방법에 .rows를 추가하고 두 번째 방법에 .cells를 추가했습니다. (다시 테스트하지 않았으므로 전화로 죄송합니다.)
earthguestg2022-02-14 13:33:19