【问题标题】:How can I convert time (time zone)如何转换时间(时区)
【发布时间】:2020-06-08 17:02:01
【问题描述】:

我想在excel中转​​换时区有15小时的差异。我可以通过以下等式在 excel 表中执行:

 =E1-(15/24)

E1 是时区 1 数据,格式如下:(mm/dd/yy hh:mm)。 我不知道如何在宏中编写此公式的代码。你能帮我写代码吗?

【问题讨论】:

  • DateAdd("h", -15, dt)
  • 您可以在宏中使用您已经拥有的(或以上来自 Kevin 的)完全相同的逻辑。你只需要用 VBA 范围切换E1(比如Range("E1")
  • @Kevin 如何将DateAdd("h", -15, dt) 应用于另一列的范围?当我申请 Sub TimeZone() Dim dt As Date dt = Range("E3:E11") Range("M3:M11") = DateAdd("h", -15, dt) End Sub 时显示错误。

标签: excel vba date time


【解决方案1】:

LocalTime = Range("E1") - (15/25) 将同样工作,但有一个条件。

E1 必须保存一个日期/时间值,它是一个带小数的数字,例如 43886.5,它表示今天的中午 12 点。如果减去 15 小时,您将在昨晚 9 点到达。

【讨论】:

  • 既然 OP 说他的方程式已经有效,这意味着他的格式是正确的
  • @urdearboy 由于 OP 认为告诉我们 E1 的格式很重要,这意味着他不知道该单元格的值。 :-)
【解决方案2】:

只需将 Excel 引用 E1 替换为 VBA 引用 Range("E1")


Range("E1") = Range("E1") - (15/24)

【讨论】:

  • 对这些信息帮不上什么忙。错误的类型会有所帮助....
  • 因此,Range("E1") 中的值实际上可能不是日期,而是看起来像日期的文本。本网站上有许多解决方案可以帮助您解决此问题
  • 嗯,没有足够的信息让我开始调试。尝试使用新代码发布另一个问题并解释您遇到的具体问题(代码失败的行)并显示与失败相关的示例数据
【解决方案3】:

我找到了答案:

Sub TimeZone()
Range("M3:M11").Formula = "=E3 - (15/24)"
End Sub

感谢您的帮助。

【讨论】:

    猜你喜欢
    • 2013-08-03
    • 2016-11-06
    • 1970-01-01
    • 1970-01-01
    • 2020-11-20
    • 2018-02-24
    • 2010-11-01
    • 2019-10-07
    • 2020-03-05
    相关资源
    最近更新 更多