|
ebi さん
こんにちは。
大変、質問はわかりよかったのですが、
日付の形式によっては下記のコードは動かないかもしれません。
また、私は、4月から始まる場合の処理がよくわからないので、
書式設定とFor~Nextのネストでごまかしました。
Sub 形式変換()
Dim oriWs As Worksheet, myWs As Worksheet
Dim myMon As Integer, myVal As Long
Dim i As Integer, j As Integer
Set oriWs = Worksheets("Sheet1")
Set myWs = Worksheets("Sheet2")
'myWsにいろいろ記述。
myWs.Columns(1).Value = oriWs.Columns(1).Value
Range("B1:M1") = Array("4", "5", "6", "7", "8", "9", "10", "11", "12", "1", "2", "3")
Range("B1:M1").NumberFormatLocal = "0""月"""
'4月から始まる場合の処理がよくわかんないから、
'ちょっとひねくれて処理をしてみる。
For i = 2 To CInt(oriWs.Range("A65536").End(xlUp).Row)
myMon = Month(oriWs.Range("B" & i).Value)
myVal = oriWs.Range("C" & i).Value
For j = 2 To 13
If myWs.Cells(1, j).Value = myMon Then
Cells(i, j).Value = myVal
End If
Next j
Next i
End Sub
|
|