'Cが入力されている行までDにDの最終行の数式をコピーする
Private Sub FormulaCopy()
Dim 数式を取得する列 As Range
Dim データが入力されている列 As Range
Set 数式を取得する列 = Range("D65536").End(xlUp)
Set データが入力されている列 = Range("C65536").End(xlUp)
Range(数式を取得する列.Offset(0,-1 ), データが入力されている列).Offset(0, 1).Formula = _
数式を取得する列.Formula
End Sub
'Offset(0,-1)と(0,1)は(x,y)の縦横の場所を示す。
'もしDではなくEに数式を入力したい場合で数式の範囲の参照元がCのままである場合は、Offset(0,-2)、Offset(0,2)となる。
2007年12月18日火曜日
2007年12月12日水曜日
Excel マクロ-四半期を算出とその他
もっといい方法がありそうではありますが。。
Sub MonthandQuoter()
Dim LastRow As Long
LastRow = Range("C65536").End(xlUp).Row 'Cは要変更
For y = 2 To LastRow
If Cells(y, 4).Value <> "" Then '4は要変更
Cells(y, 2).Value = Format(Cells(y, 4), "mmm") '列Bに月を入力します 4は要変更
End If
Select Case
Cells(y, 2).Value '列Aに列Bの月を元に四半期を入力します
Case "Jan", "Feb", "Mar"
Cells(y, 1) = "Q1" Case "Apr", "May", "Jun"
Cells(y, 1) = "Q2" Case "Jul", "Aug", "Sep"
Cells(y, 1) = "Q3" Case "Oct", "Nov", "Dec"
Cells(y, 1) = "Q4" Case Else Cells(y, 1) = ""
End Select
If Cells(y, 5).Value = "" Then '5は要変更
Cells(y, 5).Value = Range("E2").Formula '5とE2は要変更
End If
Next
End Sub
Sub MonthandQuoter()
Dim LastRow As Long
LastRow = Range("C65536").End(xlUp).Row 'Cは要変更
For y = 2 To LastRow
If Cells(y, 4).Value <> "" Then '4は要変更
Cells(y, 2).Value = Format(Cells(y, 4), "mmm") '列Bに月を入力します 4は要変更
End If
Select Case
Cells(y, 2).Value '列Aに列Bの月を元に四半期を入力します
Case "Jan", "Feb", "Mar"
Cells(y, 1) = "Q1" Case "Apr", "May", "Jun"
Cells(y, 1) = "Q2" Case "Jul", "Aug", "Sep"
Cells(y, 1) = "Q3" Case "Oct", "Nov", "Dec"
Cells(y, 1) = "Q4" Case Else Cells(y, 1) = ""
End Select
If Cells(y, 5).Value = "" Then '5は要変更
Cells(y, 5).Value = Range("E2").Formula '5とE2は要変更
End If
Next
End Sub
2007年12月11日火曜日
Excel マクロ-Pivotを自動更新
Pivotのデータ選択範囲を
挿入>名前>定義で以下のように定義づけして名前をつける。
=OFFSET($A$1,0,0,COUNTA($A:$A),COUNTA($1:$1))
※たとえば名前を「データ範囲」とする。
Macroに以下を記述
Sub Renew()
Range("A1").Select
ActiveSheet.PivotTableWizard SourceType:=xlDatabase, SourceData:= _
"データ範囲"
End Sub
http://cgi.fuji.ne.jp/~fj2094/cgi-bin1/exqalounge.cgi?print+200512/05120052.txt
のkomaさんのコメントを参考にさせていただきました。
挿入>名前>定義で以下のように定義づけして名前をつける。
=OFFSET($A$1,0,0,COUNTA($A:$A),COUNTA($1:$1))
※たとえば名前を「データ範囲」とする。
Macroに以下を記述
Sub Renew()
Range("A1").Select
ActiveSheet.PivotTableWizard SourceType:=xlDatabase, SourceData:= _
"データ範囲"
End Sub
http://cgi.fuji.ne.jp/~fj2094/cgi-bin1/exqalounge.cgi?print+200512/05120052.txt
のkomaさんのコメントを参考にさせていただきました。
登録:
投稿 (Atom)