|
>只今実行中なのですが、1係の06年実績と07年目標が表示されず
>2係の06年実績と07年目標の欄にずれて表示されるのですが?
>ご指示どおりコードはcopyしたのですが
>どこかまた私のミスでしょうかご点検お願いできますか
>(20070401形式にしました)
当方で、hiroさんがUpされたコードを再度、Excelに取り込んで取り合えず試したのですが?
その様な現象は出ていませんね?
「ずれて表示される」とは、どのように成っているのでしょうか?
もう少し、詳しくお願いします
例えば、全ての店舗に就いて、4月〜3月までの「1係」が「2係」の欄にずれているのか?
この場合、「30係」の所もずれているのですか?
また、差益の集計表はどうなっていますか?
もしかして、出力位置のずれだとUpされたコードでは無く
コピーして下さいと言ったプロシージャかも解りませんので、
出力に関係するプロシージャを載せますので、此れに代えて見て下さい
(ただし、内容は全く変更していません)
Private Sub OutputTerminate(rngTop As Range, _
vntName As Variant, _
lngYear As Long, _
vntTitle As Variant, _
lngStart As Long)
Dim i As Long
Dim j As Long
Dim lngPitch As Long
Dim vntResult As Variant
Dim vntTmp As Variant
'出力ピッチを取得
lngPitch = UBound(vntTitle) + 1
'行見出し作成用の配列を作成
ReDim vntResult(1 To UBound(vntName, 2) * lngPitch + lngStart, 1 To 2)
vntResult(1, 1) = "係"
vntResult(2, 2) = Right(CStr(lngYear - 1), 2) & vntTitle(0)
vntResult(3, 2) = Right(CStr(lngYear), 2) & vntTitle(UBound(vntTitle))
For i = 1 To UBound(vntName, 2)
vntResult(lngStart + (i - 1) * lngPitch + 1, 1) = vntName(1, i)
For j = 0 To UBound(vntTitle)
vntTmp = vntTitle(j)
Select Case j
Case 0, lngPitch - 1
vntTmp = Right(CStr(lngYear), 2) & vntTmp
Case lngPitch - 2
vntTmp = Right(CStr(lngYear - 1), 2) & vntTmp
End Select
vntResult(lngStart + (i - 1) * lngPitch + j + 1, 2) = vntTmp
Next j
Next i
With rngTop
'行見出しの出力
.Resize(UBound(vntResult, 1), 2).Value = vntResult
'列見出しの作成
ReDim vntResult(11)
For i = 0 To 11
vntResult(i) = ((i + 3) Mod 12 + 1) & "月"
Next i
.Offset(, 2).Resize(, UBound(vntResult) + 1).Value = vntResult
'算式の代入
For i = 1 To UBound(vntName, 2)
.Offset(lngStart + (i - 1) * lngPitch + 1, 2).Resize(, 12).FormulaR1C1 _
= "=IF(R[2]C="""","""",ROUND(R[-1]C/R[2]C,2))"
.Offset(lngStart + (i - 1) * lngPitch + 2, 2).Resize(, 12).FormulaR1C1 _
= "=IF(R[2]C="""","""",ROUND(R[-2]C/R[2]C,4))"
Next i
End With
End Sub
|
|