2016-03-24 10 views
0

私は自分自身でExcelで記録した以下のコードを持っています。基本的には、最初の3つのワークシート以外のすべてのワークシートに同じ式をコピーしたいと思います。 IF(A1="Facility Variance Report",MID(A2,FIND("_",A2)+1,2)&"-"&TRIM((MID(A2,FIND(":",A2)+2,23)))&"-Var",MID(A2,FIND("_",A2)+1,2)&"-"&TRIM((MID(A2,FIND(":",A2)+2,23)))&"-Inc") 私の質問は、とにかく、それは3番目のワークシートから開始する配列参照を短縮することができますか?私が求めている理由は、ワークシート名が毎回同じように来るという確かな方法がないからです。私のマクロでワークシートの配列リファレンスを変更するには

Sub Macro1() 
     Sheets("OH-Knox Community Hospital-Var ").Select 
    ActiveWindow.ScrollWorkbookTabs Position:=xlLast 
    Sheets(Array("OH-Knox Community Hospital-Var ", "OH-Knox Community Hospital-Inc" _ 
     , "WV-Bluefield Regional Medic-Var", "WV-Bluefield Regional Medical C", _ 
     "FL-Wuesthoff Medical Center-Var", "FL-Wuesthoff Medical Center - R", _ 
     "NC-Johnston Medical Center-Var", "NC-Johnston Medical Center-Inc", _ 
     "LA-Ochsner Medical Center --Var", "=MID(A2,FIND(""_"",A2)+1,2)&""-""&I", _ 
     "WV-Plateau Medical Center --Var", "LTM Income Stat-HM_WV_469593 -", _ 
     "Facility Varian-HM_NM_15140 - ", "LTM Income Stat-HM_NM_15140 - ", _ 
     "Facility Varian-HM_NC_469584 -", "LTM Income Stat-HM_NC_469584 -", _ 
     "Facility Varian-HM_IL_416691 -", "LTM Income Stat-HM_IL_416691 -", _ 
     "Facility Varian-HM_AR_12253 - ", "LTM Income Stat-HM_AR_12253 - ", _ 
     "Facility Varian-HM_MS_414655 -", "LTM Income Stat-HM_MS_414655 -", _ 
     "Facility Varian-HM_AR_12521 - ", "LTM Income Stat-HM_AR_12521 - ", _ 
     "Facility Varian-HM_MS_475748 -")).Select 
    Sheets("OH-Knox Community Hospital-Var ").Activate 
    Sheets(Array("LTM Income Stat-HM_MS_475748 -", "Facility Varian-HM_TX_416680 -", _ 
     "LTM Income Stat-HM_TX_416680 -", "Facility Varian-HM_TX_416690 -", _ 
     "LTM Income Stat-HM_TX_416690 -", "Facility Varian-HM_TX_469595 -", _ 
     "LTM Income Stat-HM_TX_469595 -", "Facility Varian-HM_MS_469582 -", _ 
     "LTM Income Stat-HM_MS_469582 -", "Facility Varian-HM_MS_469586 -", _ 
     "LTM Income Stat-HM_MS_469586 -", "Facility Varian-HM_OK_416699 -", _ 
     "LTM Income Stat-HM_OK_416699 -", "Facility Varian-HM_AZ_395470 -", _ 
     "LTM Income Stat-HM_AZ_395470 -", "Facility Varian-HM_NM_469587 -", _ 
     "LTM Income Stat-HM_NM_469587 -", "Facility Varian-HM_NM_469588 -", _ 
     "LTM Income Stat-HM_NM_469588 -", "Facility Varian-HM_NM_469589 -", _ 
     "LTM Income Stat-HM_NM_469589 -", "Facility Varian-HM_NM_469590 -", _ 
     "LTM Income Stat-HM_NM_469590 -", "Facility Varian-HM_WA_391716 -", _ 
     "LTM Income Stat-HM_WA_391716 -")).Select Replace:=False 
    Sheets(Array("Facility Varian-HM_WA_391717 -", "LTM Income Stat-HM_WA_391717 -", _ 
     "Facility Varian-HM_WA_391718 -", "LTM Income Stat-HM_WA_391718 -", _ 
     "Facility Varian-HM_AZ_469592 -", "LTM Income Stat-HM_AZ_469592 -", _ 
     "Facility Varian-HM_KY_475745 -", "LTM Income Stat-HM_KY_475745 -", _ 
     "Facility Varian-HM_NC_470554 -", "LTM Income Stat-HM_NC_470554 -", _ 
     "Facility Varian-HM_KY_469591 -", "LTM Income Stat-HM_KY_469591 -", _ 
     "Facility Varian-HM_WV_469583 -", "LTM Income Stat-HM_WV_469583 -", _ 
     "Facility Varian-HM_SC_182783 -", "LTM Income Stat-HM_SC_182783 -", _ 
     "Facility Varian-HM_FL_475750 -", "LTM Income Stat-HM_FL_475750 -", _ 
     "Facility Varian-HM_CO_475749 -", "LTM Income Stat-HM_CO_475749 -", _ 
     "Facility Varian-HM_CO_475751 -", "LTM Income Stat-HM_CO_475751 -", _ 
     "Facility Varian-HM_CO_10176 - ", "LTM Income Stat-HM_CO_10176 - ", _ 
     "Facility Varian-HM_FL_244515 -")).Select Replace:=False 
    Sheets(Array("LTM Income Stat-HM_FL_244515 -", "Facility Varian-HM_FL_475746 -", _ 
     "LTM Income Stat-HM_FL_475746 -", "Facility Varian-HM_LA_39597 - ", _ 
     "LTM Income Stat-HM_LA_39597 - ", "Facility Varian-HM_LA_161289 -", _ 
     "LTM Income Stat-HM_LA_161289 -", "Facility Varian-HM_LA_33025 - ", _ 
     "LTM Income Stat-HM_LA_33025 - ", "Facility Varian-HM_LA_351095 -", _ 
     "LTM Income Stat-HM_LA_351095 -", "Facility Varian-HM_LA_310198 -", _ 
     "LTM Income Stat-HM_LA_310198 -", "Facility Varian-HM_LA_217368 -", _ 
     "LTM Income Stat-HM_LA_217368 -")).Select Replace:=False 
    ActiveCell.FormulaR1C1 = "" 
    Range("A4:F4").Select 
    ActiveCell.FormulaR1C1 = "" 
    Range("A4:F4").Select 
    Selection.NumberFormat = "General" 
    ActiveCell.FormulaR1C1 = _ 
     "=IF(R[-3]C=""Facility Variance Report"",MID(R[-2]C,FIND(""_"",R[-2]C)+1,2)&""-""&TRIM((MID(R[-2]C,FIND("":"",R[-2]C)+2,23)))&""-Var"",MID(R[-2]C,FIND(""_"",R[-2]C)+1,2)&""-""&TRIM((MID(R[-2]C,FIND("":"",R[-2]C)+2,23)))&""-Inc"")" 
    Range("A5").Select 
End Sub 

答えて

1

このコードでは、トリックを行う必要があります。

Sub insert_formula() 

    Dim formula As String 

    formula = "=IF(R[-3]C=""Facility Variance Report"",MID(R[-2]C,FIND(""_"",R[-2]C)+1,2)&""-""&TRIM((MID(R[-2]C,FIND("":"",R[-2]C)+2,23)))&""-Var"",MID(R[-2]C,FIND(""_"",R[-2]C)+1,2)&""-""&TRIM((MID(R[-2]C,FIND("":"",R[-2]C)+2,23)))&""-Inc"")" 

    For i = 4 To ThisWorkbook.Worksheets.Count 
     Worksheets(i).Range("A4").NumberFormat = "General" 
     Worksheets(i).Range("A4") = formula 
    Next i 

End Sub 

は、あなたのVBAモジュールに貼り付けて、それを実行します。

+0

アプリケーション定義のエラーまたはオブジェクト定義のエラー – user3666237

+0

また、セルの書式を変更する行を、式を挿入するより一般に追加したいのですが、 – user3666237

+0

式には実行時エラーがあります。希望の範囲への悪い参照。あなたの数式では、y = IF(A1 = ...)ですが、A1は任意のシートに含まれるセルになります。 = If(sheet1!A1 ...)ここで、sheet1はシート名 –

関連する問題