나는 한 스프레드 시트 (데이터)에서 다른 스프레드 시트 (Sheet1)의 값을 검색하기 위해 매크로를 작성한 후, Sheet1에서 결과가 발견 된 셀의 2 열에서 왼쪽 값. 그것은 훌륭하게 작동했지만 무언가가 변경된 것 같습니다 (???). 두 스프레드 시트에 값이 존재 함에도 불구하고 모든 "거짓"결과를 반환합니다.이전에 작동했던 Iferror/Index/Match 수식이 이제 대상 시트에있는 값에도 불구하고 모든 False 결과를 반환합니다.
그것은 내가 어떤 테스트를 위해 문제의 스프레드 시트를 제공 할 수
(항상 Sheet1의라는) 두 번째 시트의 첫 번째 워크 시트에 열 C의 값을 검색합니다. 내 주석이 코드는 다음과 같습니다, 어떤 도움을 크게 감상 할 수있다 : 코드에
Sub GroupFileNameFix()
'
' GroupFileNameFix Macro
'define variable types
Dim strFormula As Variant
Dim LastRow As Long
'on Data sheet
With ActiveSheet
' determines last row on spreadsheet and saves value to variable "LastRow"
LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
'sets variable "strFormula" as what we want to autofill, grabbing group filenames
strFormula = "=IFERROR(INDEX(Sheet1!RC[-3],(MATCH(RC[1],Sheet1!C[-1],0))),""False"")"
'inserts column "GroupFileName" as column D
Columns("D:D").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range("D1").Select
ActiveCell.FormulaR1C1 = "GroupFileName"
Columns("D:D").EntireColumn.AutoFit
' Fills cell D2 and then autofills column D to end of spreadsheet
Range("D2:D2").Select
.Range("D2:D2").Formula = strFormula
.Range("D2:D" & LastRow).FillDown
End With
'Commit formula to text and replace "png" with "jpg"
Columns("D:D").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Selection.Replace What:="png", Replacement:="jpg", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End Sub
그래서이 모든 코드에 대한 어떤 "IFERROR (INDEX (Sheet1! RC [-3], MATCH (RC [1], Sheet1! C [-1], 0))),"False ")'FALSE를 반환하는 이유는 무엇입니까? " ... Excel에서 함수를 평가하려고하면'Index/Match'가 오류를 던지고 있습니다. FWIW 나는 R1C1 표기법을 피할 것이다. –
"두 번째 시트 (항상 Sheet1이라고 함)의 첫 번째 워크 시트에서 C 열의 값을 검색합니다". 잘못된 코드를 읽지 않는 한,'MATCH (RC [1], Sheet1! C [-1], 0)'은 현재 시트의 E 열의 값과 Sheet1의 C 열의 값을 일치 시키려고합니다 . 그게 당신 문장이 말하는거야? – YowE3K
직접 전화를 걸 수있는 범위를 선택하는 이유는 무엇입니까? 또는 셀 수식을 문자열과 동일하게 만드시겠습니까? 범위 ("D1") 선택 ActiveCell.FormulaR1C1 = "GroupFileName" 범위 ("D1")이어야합니다. 값 = "GroupFileName" – mooseman