Excel / VBA:当单元格更改时,更改具有不同日期格式的另一个单元格

时间:2018-02-16 14:37:22

标签: excel excel-vba tfs vba

我想在另一个单元格更改时更改excel单元格。 我的数据来自TFS,它返回的日期是一个很长的日期(2018/02/02 12:07:33 AM),但它旁边的列需要更改为短日期(2018/02/02) 可以随时添加新行。 使用以下工作正常,但只要添加新行,短日期就是空白:

=DATE(YEAR(E3);MONTH(E3);DAY(E3))

是否可以在没有VBA的情况下执行此操作,如果不是,我将如何使用VBA实现此目的。

|A1                      |A2               |
|Long Date               |Short Date       |
|2018/02/02  12:07:33 AM |2018/02/02       |

TFS的列表每周都会更改,长日期也可能每天或每周更改。首先,长日期将为空,当用户按下特定按钮时,来自TFS的查询将更新长日期单元格。

3 个答案:

答案 0 :(得分:2)

如果我的问题正确,那么解决方案似乎很简单。

在单元格A2中使用公式:" = A1"

右键单击Cell A2并选择' Format Cells ...' 选择自定义'在类别中选项,然后输入" yyyy / mm / dd"对于类型

那应该是它。由于单元格是按公式链接的,因此只要“计算选项”设置为“自动'

,它们就会自动更新

答案 1 :(得分:1)

您可以使用

=DATE(YEAR(A1),MONTH(A1),DAY(A1))

格式化为yyyy/mm/dd

答案 2 :(得分:0)

Excel \ VBA:所以我做的是:

'Add smalldate to all items in the items page
    Dim LastRow As Integer
    Dim RowNumber As String
    Dim ColumnNumber As String: ColumnNumber = "F"
    Dim FixedVariable As String: FixedVariable = "F3:"

    LastRow = Cells(Rows.Count, 1).End(xlUp).Row
    RowNumber = ColumnNumber & LastRow

    Dim RangeValue As String: RangeValue = FixedVariable + RowNumber
    Range(RangeValue).Formula = "=DATE(YEAR(E3),MONTH(E3),DAY(E3))"

像魅力一样,我需要使用更好的命名约定!