日期重复:在今天的日期添加特定行的计数器(VBA / Qlik Sense)

时间:2017-11-26 23:15:38

标签: excel vba excel-vba date qliksense

我最近写了一个相当简单的VBA代码,这样我就可以长期跟踪我每天穿的东西。为此,我将一个Macro连接到一个Command Button,它看起来如下:

    Private Sub WearingToday_Click()

      Dim NextCol As Long
      NextCol = Cells(1, Columns.Count).End(xlToLeft).Column + 1
      Cells(1, NextCol).Value = Date
      Cells(ActiveCell.Row, NextCol).Value = "1"

    End Sub

代码只是在下一个可用列上添加今天的日期,在该列下,它在我选择的行上添加数字“1”。

我的问题是,如果我每天激活一次以上的宏,第二次激活的日期序列号最后会有一个额外的1,给我一个对应于3000年的日期。为了更清楚:我在11月20日穿了两件东西,它给出了两个相同的日期相同的列;但只有这些日期的第一列显示正确的序列号。

我可能会提到我正在将数据导入Qlik Sense,我稍后会做一些可视化。在将数据存储为QVD文件并从QViewer查看数据时,我会看到日期序列号。

有趣的是,两个序列号的字符串表示 - 在Excel电子表格中 - 是正确的。因此,我不确定问题是否确实只是因为从.xlsm到.qvd的转换而存在,或者它是否从一开始就存在。

我希望我已经明确了我的问题,并且有人能够帮助我解决这个问题,或者至少让我明白我前进的可能性。

提前致谢。

1 个答案:

答案 0 :(得分:0)

以下代码将检查最后一列标题是否已经是今天的日期,如果是,只需更新同一列:

Private Sub WearingToday_Click()

    Dim LastCol As Long
    LastCol = Cells(1, Columns.Count).End(xlToLeft).Column
    If Cells(1, LastCol).Value2 < Date Then
        LastCol = LastCol + 1
        Cells(1, LastCol).Value = Date
    End If
    Cells(ActiveCell.Row, LastCol).Value = 1

End Sub

我怀疑您对Qlik Sense的导出因两列具有相同标题(即日期)而感到困惑,并且可能只是在第二个标题中附加“1”以使每个标题唯一。但我从来没有听说过或看过Qlik Sense,所以我无法确定。如果 是Qlik Sense中奇怪行为的原因,那么确保您没有重复的标题会使您的问题消失。