我最近写了一个相当简单的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的转换而存在,或者它是否从一开始就存在。
我希望我已经明确了我的问题,并且有人能够帮助我解决这个问题,或者至少让我明白我前进的可能性。
提前致谢。
答案 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中奇怪行为的原因,那么确保您没有重复的标题会使您的问题消失。