私は外部ソースにリンクしているテンプレートを持っています。Excel VBA - 可視セルに貼り付け
私の前任者はそれを作成し、目の上の「容易さ」のために、彼は行をスキップして作成しました。すなわち行1、次に行3、行5、行9、行13などがありますが、これらの行の間にはDEFAULT EMPTY CELLしかありません。
ブックを開き、必要なシートをコピーするvbaを作成しました。
以下のコードを使用すると、実行速度が非常に遅くなり何らかの理由で2回以上ループします。
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
したがって、私が実際に行ったことは、それを1回割り当ててコピーし、それぞれのセルに貼り付けることです(下図参照)。
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」
- 変更した場合
行の一番左側のセルが空白の場合は、行全体をスキップする必要がありますか? –
そうです。その行が空白の場合、行全体は空白です。 –