외부 소스에 연결되는 템플릿이 있습니다.Excel VBA - 보이는 셀에 붙여 넣기
전임자가 작성했으며 눈을 '편하게'하기 위해 행을 건너 뛰면서 작성했습니다. 행 1, 그 다음 행 3, 5 행 9, 13 행 등이 있습니다. 언급 된 행 사이에는 DEFAULT EMPTY CELL 만있는 반면, HAS FORMULA가 있습니다.
통합 문서를 열고 원하는 시트를 복사하는 vba를 만들었습니다.
아래 코드를 사용하면 매우 느리게 실행되며 어떤 이유로 든 두 번 이상 반복됩니다.
for each cell in usedrange
if cell.hasformula = true and instr(cell.formula, "SUMIF") > 0 then
cell.formulaR1C1 = "='\\tel\folder1\folder2\[xlsheet.xlsx]SheetName'!RC
end if
next cell
따라서 실제로 한 번 할당 한 다음 복사하여 각 셀에 붙여 넣습니다 (아래 그림 참조).
Workbooks(desWB).Sheets(maxSheet + 1).Range("J5").FormulaR1C1 = fullPath
Workbooks(desWB).Sheets(maxSheet + 1).Range("J5").Copy
Workbooks(desWB).Sheets(maxSheet + 1).Range("J6:J12,E48:J55,E57:J58,E61:J79,E84:J93,E96:J96,E99:J103").PasteSpecial Paste:=xlPasteFormulas
후자의 방법이 효과적이며 처음보다 훨씬 빠릅니다. 그러나 이제 템플릿의 설정으로 인해 일부 행에 수식이 있고 일부는 그렇지 않은 상황에 직면하고 있으며 수천 개의 행이 있습니다. 행의 건너 뛰기가 너무 때로는 2의 증가하지, 그것은 수 3, 5 등
에보다 효과적이고 효율적 방법이 있는지 그래서 궁금 : 사용 된 범위에서
- 봐
- 범위는 공식을 가지고 있으며, 공식은 뭔가 다른 그 밖에
- SKIP 및 확인 다음 셀에 수식이 'SUMIF'
- 변경하는 경우
행의 가장 왼쪽 셀이 비어 있으면 전체 행을 건너 뛸 것을 의미합니까? –
맞습니다 ... 행이 비어 있으면 전체 행이 비어 있습니다. –