For i = Lbound(X) to Ubound(X)

a = MATCH関数でXを検証

if XとMATCH関数が一致 Then

For j = Lbound(Z,2) to Ubound(Z,2)

Z(k,j) = cells(a,j-1).value

k = k + 1

next j

end if

Debug.print i

Next i

Xは要素が3万ほど
シートの列数も3万ほどでXと同じ値を格納
シートの列数は50程度

これでDebug.printの表示感覚が1秒ごとくらいなんだけど遅いですか?
30000 * 50 = 150000ループ
実に8時間ほどで納得行かない遅さなんです