【发布时间】:2018-11-01 15:26:59
【问题描述】:
我正在使用公式在下一列中输入内容后立即自动填充日期。
=If(B9="","",IF(A9="",NOW(),B9))
完成此操作后,我将公式应用于单元格,直到第 48 行。现在,当在源中输入任何内容(ref 的屏幕截图)时,日期会自动填充。像魅力一样工作,一切都很好。
设计了一个用户表单,用于输入减去日期的数据,因为使用了上述公式。应该工作,但它没有。日期为1/1/1900。稍微偏离了一个世纪 +18 年,没什么大不了的,哈哈。
您可以在我用于数据输入的屏幕截图中看到的代码。最初我将工作表设置为 48 行。由于在使用用户表单时,数据在第 48 行之后“仅”输入,因此表格不断扩展。 48之后的行我删了很多次了,都不好笑了。
现在 VBA 代码以某种方式关闭或不完整,这让整个事情变得有趣。我该如何解决这个问题?
附:使用 Excel 2016
表单上添加数据按钮的代码。为此,数据不会从第 9 行 B 列开始填充。它从第 48 行开始。
Private Sub CommandButton1_Click()
Dim dcc As Long
Dim abc As Worksheet
Set abc = Worksheets("January2019")
dcc = Sheets("January2019").Range("A" & Rows.Count).End(xlUp).Row
With abc
.Cells(dcc + 1, 2).Value = Me.TextBox1.Value
.Cells(dcc + 1, 3).Value = Me.TextBox2.Value
.Cells(dcc + 1, 4).Value = Me.TextBox3.Value
.Cells(dcc + 1, 5).Value = Me.TextBox4.Value
.Cells(dcc + 1, 6).Value = Me.TextBox5.Value
End With
日期代码。
=If(B9="","",IF(A9="",NOW(),B9))
如果手动输入数据,日期自动工作,但是当使用用户表单时,日期输入为 1900 年 1 月 1 日,上面提到该条目是在第 48 行之后进行的。
我希望/针对此代码和用户表单的目标是:
在用户表单中没有日期选项。我在第 9 行添加了日期公式,然后将其拖到第 48 行。使用户表单减去日期字段,因为一旦输入数据,日期就会自动填充。并且,数据从第一个可用行 B9 开始填充。所以现在我迷路了,因为我不知道故障在哪里或发生了什么,这使得这个添加随机行并且日期很远。
【问题讨论】:
-
@BigBen 我希望我的代码格式正确?看看并希望能解决这个问题。感谢您的回复。
-
第47行有数据吗?如果是这样,这就是为什么您从第 48 行开始使用
.Cells(dcc + 1, x),无论第 9 行是否为空白。.End(xlUp).Row从工作表的最底部开始,一直向上直到找到底部中的第一个非空单元格。 -
第 47 行没有数据。实际上任何地方都没有数据。我选择并删除了所有输入的随机数据。所有列 + 行都是空的。
-
好的,我只是快速删除了所有行,只是为了 100%,但仍然一样!我认为这行不通。叹。是否有任何简单的代码可以通过用户表单输入日期?我在想如果这不起作用,那么我将在用户表单上添加一个标题,说明日期和一个自动填充日期的文本框,并且在按下添加数据时,日期也会添加到工作表中.对这个想法有什么想法吗?
-
日期的标准是什么?它进入哪一列?我看到了公式,但没有说明公式的位置。