|
>以下の部分(2つです)について、その内容の意図と言いますか、
>意味を教えていただ けますでしょうか?
'もし、先頭行B列が""なら
If .Cells(lngListTop, "B").Value = "" Then
'先頭行を取得
lngListTop = .Cells(lngListTop, "B").End(xlDown).Row
End If
これは、
>日付がB列に表示され、これもエクセルの表を取得する日によって表示されるセルの場所は異なります。
との事なので、Listの先頭、要は最初にに日付が出てくる行位置を探しています
ただし、日付かどうかは判断していませんB列のセルが""かどうかで判断しています
'もし、B列が""でD列が""なら(日付の終り)
If vntData(1, 1) = "" And vntData(1, 3) = "" Then
'小計を出力
.Cells(i, "C").Resize(, 2).Value = vntSubSum
'小計を計に加算
For j = 0 To 1
vntSum(j) = vntSum(j) + vntSubSum(j)
Next j
の意味は、セルを直接参照すると遅く成るので、
このコードでは一度セルの値を1行づつ配列に読みこんでいます
其の時、vntData(1, 1)がB列の値で、vntData(1, 3)がD列の値と成ります
同一行で、B列が""で、D列が""の位置は、1日付のデータの終りを表しています
よって、そこが出てきたら、小計を出力しています
|
|