VBAで配列にデータを格納し比較して出力する事はできますか?
“単価抽出”シートに部品コード、単価情報が入っています。
★やりたい事は
A列4行目から部品コード
B列4行目から発注先
C列4行目から発注単価
D列4行目から実績単価
E列4行目から標準単価
が表示されています。
この情報を基に以下の条件で
H列4行目から『適応単価』を算出したいです。
1.部品先(B列)のコードが”A11”で且つ、部品コード(A列)のコード末尾が”-A”もしくは”-B”の場合、
’0円’を『適応単価』に表示
2.発注単価(C列)が’0円’の場合、実績単価(D列)を『適応単価』に表示。
3.実績単価(D列)が’0円’の場合、標準単価(E列)を『適応単価』に表示。
4.全て’0円’の場合は、’0円’を『適応単価』に表示
条件に合わせてループさせた以下のコードでできるのですが、
対象が数万になると非常に遅いです。
★データを配列に格納し条件に合わせて比較出力する事は可能でしょうか?
コードを教えて頂きたいです。
Sub 単価比較() Dim maxrow As Long Dim I As Long Application.ScreenUpdating = False With Sheets("単価抽出") .Cells(2, 8).Value = "適応単価" With .Range("A1").SpecialCells(xlLastCell) maxrow = .Row End With For I = 4 To maxrow If .Cells(I, 3) = 0 Then If .Cells(I, 4) = 0 Then .Cells(I, 8) = .Cells(I, 5) Else .Cells(I, 8) = .Cells(I, 4) End If Else .Cells(I, 8) = .Cells(I, 3) End If If (.Cells(I, 2) = "DIP" And Right(Cells(I, 1), 2) = "-A") Or _ (.Cells(I, 2) = "DIP" And Right(Cells(I, 1), 2) = "-J") Then .Cells(I, 8) = 0 Else: End If Next I End With Application.ScreenUpdating = True End Sub

回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/07/12 09:56