2017-08-07 11 views
0

現在、私たちのレポートのテンプレートを作成中です。私はいくつかの自動化をしたいと思います。月(名前)に基づいてデータを取得する

私は「KPISource」と呼ばれるソースシートを持っています(データソースはsharepointにありますので、これはテーブルです)。そして最初の欄には、現在の月と前の月を持つデータを取得したいと思います。

基本的に、現在の月の場合、データは「8月」の列に配置されます。日付が前月の場合、データは「7月」にも格納されます。私のソースシートで

Below is the screenshot of our template:

、列は日付、(生産性)解決チケット、YTD、チケットは(品質)、YTD(< 5日間エージング)エージング< 5日間エージングレート(品質)、再度開きます> 5日(品質)、YTD(年齢> 5日間)、顧客満足度、YTD(顧客満足度)

現在のところ私のコードはありますが、出力はありません。これは、私が列1(KPISource)に前の日付がある場合、KPI.Cells(6、4).Value(Tickets Solved "July")の値を持つことを試みているコードです。

Sub OperationalKPI() 

Dim KPI As Worksheet 
Set KPI = Sheets("OperationalKPI") 
Dim KPISource As Worksheet 
Set KPISource = Sheets("KPISource") 


mPrevious = Format(DateAdd("m", -1, Date), "mmmm") 
mCurrent = Format(Date, "mmmm") 


lastrow = KPISource.Cells(Rows.Count, 1).End(xlUp).Row 

For x = 2 To lastrow 

If mPrevious = KPISource.Cells(x, 1) Then 

    KPI.Cells(6, 4).Value = KPISource.Cells(x, 2).Value 

End If 

Next x 


End Sub 
+0

セルを参照しているセル(6,4)のみに情報を入力していますが、これは何ですか? –

+0

はい、チケット解決済み(2列目)のデータを(6,4)に入れる必要があります。これは7月に解決されたチケットです。 – Sevpoint

+0

ソーススプレッドシートの日付列を見てください。それらは、月の名前のテキストとして、またはセルの書式付きの完全な日付として格納されていますか? –

答えて

1

問題、あなたのフィードバックに基づいて、

If mPrevious = KPISource.Cells(x, 1) Then 

mPreviousは、月の名前を含む文字列であるラインである、例えば "7月"、しかしKPISource.Cells(X、1 )には日付が含まれているため、2つは決して等しくなることはありません。

変更行に:

If mPrevious = Format(KPISource.Cells(x, 1),"mmmm") Then 

これは、彼らの月の名前とする場合との両方の項目の文字列が一致するものを見つける必要があるでしょう。

+0

私は試して、それは完全に働いた。ありがとう!あなたが行く! – Sevpoint

+0

こんにちは、私はちょうど別の質問をしたいと思います。私は日付の列に07/01/2018の日付を追加しようとしました。この場合、同じ月になります。したがって、最後の行である07/01/2018の値を取得します。今年の今月は私が手に入れたいものですから、このツールは来年に使うことができます。あなたは解決策になるかもしれないことを教えてください。ありがとうございました。 – Sevpoint

+0

mPrevious = Format(DateAdd( "m"、-1、Date)、 "mmmm yyyy") mCurrent =書式(日付、 "mmmm yyyy")とIf mPrevious =書式を "yyyy" (KPISource.Cells(x、1)、 "mmmm yyyy") – Sevpoint

関連する問題