Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于月份(名称)excel vba获取数据_Excel_Vba_Date - Fatal编程技术网

基于月份(名称)excel vba获取数据

基于月份(名称)excel vba获取数据,excel,vba,date,Excel,Vba,Date,我正在为我们的报告创建一个模板。我想做一些自动化 我有一个源表,我称之为KPISource数据源在sharepoint中,因此这是一个表。在第一列中,我想得到当前月份和前一个月的数据 基本上,如果是本月,它将把数据放在8月列中。如果日期是上个月,那么它也会把数据放在7月份 在我的源代码表中,列为日期、票证解决生产率、年初至今、票证重开率质量、账龄5天、客户满意度、年初至今客户满意度 目前这是我的代码,但没有输出显示。这是我正在尝试的代码,如果第1列KPISource中有以前的日期,那么它将在KP

我正在为我们的报告创建一个模板。我想做一些自动化

我有一个源表,我称之为KPISource数据源在sharepoint中,因此这是一个表。在第一列中,我想得到当前月份和前一个月的数据

基本上,如果是本月,它将把数据放在8月列中。如果日期是上个月,那么它也会把数据放在7月份

在我的源代码表中,列为日期、票证解决生产率、年初至今、票证重开率质量、账龄5天、客户满意度、年初至今客户满意度

目前这是我的代码,但没有输出显示。这是我正在尝试的代码,如果第1列KPISource中有以前的日期,那么它将在KPI.Cells6,4.value中具有值

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

根据你的反馈,问题就在眼前

If mPrevious = KPISource.Cells(x, 1) Then
mpprevious是一个包含月份名称的字符串,例如July,但是KPISource.Cellsx,1包含一个日期,因此两者永远不会相等

将行更改为:

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

这将使两个项目都具有字符串,其中包含月份名称,If应找到匹配项。

您只将信息放入一个单元格,单元格引用6,4,这是您想要的吗?是,因为我需要将已解决的票证第2列数据放入6,4,即已解决的票证->7月。请查看源电子表格中的日期列。它们是存储为带有月名的文本还是存储为带有单元格格式的完整日期?我检查了dates列,它的格式为Date。嗨,Rob,我想问另一个问题。我试图在日期栏中添加日期,即2018年1月7日。在这种情况下,它们是同一个月。因此,它得到的值为07/01/2018,这是最后一行。我想得到的是今年的当前月份,这样这个工具可以用于明年。你能告诉我解决办法吗?谢谢。我想我只需要在mPrevious=FormatDateAddm,-1,Date,mmmm-yyyy-mCurrent=FormatDate,mmmm-yyyy中添加yyy,如果mPrevious=FormatKPISource.Cellsx,1,mmmm-yyyyy,我已经尝试添加了两个2018年的日期,并且成功了。非常感谢。