Worksheets(ShtName).Range("D4:D91").Value = Worksheets("Builder").Range("C244:C331").Value
'MsgBox ActiveSheet.Name
Dim i As Long, j As Long, k As Long
Dim N As Long
N = Cells(Rows.Count, "A").End(xlUp).Row
j = 2
k = 1
Dim rownum As Long
Dim colnum As Long
Dim data, result
colnum = 1
Dim rng As Range
Dim counter As Integer
Set rng = Worksheets(ShtName).Range("D4:D91")
i = 1
For counter = 1 To rng.Rows.Count
If rng.Cells(i) = "0" Then
rng.Cells(i).Cells.Delete
Else
i = i + 1
End If
Next
With Range("D4", Cells(Rows.Count, "D").End(xlUp)).Resize(, 2)
data = .Value
numrows = UBound(data)
rownum = 4
Range((Cells(5, 4)), (Cells(91, 4))).Copy
Cells(4, 5).Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Cells(5, 4).Select
Range("D5:D30").Delete Shift:=xlUp
End With
は、それは私が複数回使用時間がかかっdeleteメソッドの問題を持っていた私が知っているabitは厄介だが、私はそれをどのように改善できるか疑問に思う、ない質問をする方法が良くわからいずれかコピーとトランスポーズの「アルゴリズム」が遅いのはなぜですか?
どのように遅いですか?いくつかの改善がありますが、なぜコードが遅くなるべきかはわかりません。あなたのコードのすべてを投稿していないように見えますが。 – SJR
イベントがトリガーされている可能性があります。イベントを無効にして最後に有効にしてみてください。 –
あなたのコードがうまくいくなら、私は[codereview.se]に最適だと思います。あなたはそれを再フォーマットし、考えて、あなたのコードの意図とそれが何であるかの説明に意味のあるタイトルを提供し、また完全な作業コード( 'Sub'宣言を含む)を提供しなければならないでしょう –