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

Date duplicates: Adding a counter for a specific row on today's date (VBA/Qlik Sense)

我最近写了一段相当简单的 VBA 代码,这样我就可以长期跟踪我每天穿的衣服。为此,我制作了一个连接到命令按钮的宏,如下所示:

    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 的转换而存在,或者是否从一开始就存在。

我希望我已经清楚我的问题,并且希望有人能够帮助我解决这个问题,或者至少让我明白我有哪些可能性。

提前致谢。

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

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 的导出因具有相同 header(即日期)的两列而被混淆,它可能只是在第二个 [=17] 后附加一个“1” =] 使每个 header 独一无二。但我从未听说过或见过 Qlik Sense,所以我不能确定。如果 Qlik Sense 中奇怪行为的原因,那么确保您没有重复的 header 应该会让您的问题消失。