VBA程序中的数据/时间公式Excel

罗尔

我真的不知道这是否可行,但是我试图编写一个使用内置日期/时间函数进行计算并将其输出到单元格的Excel程序。它将使用下载日期(位于A列中),数据输入的最后时间(B的底部行)以及每个独立的数据输入时间(B列)。

我希望每个单元格中的公式如下所示:A2-时间(0,0,(B_Last-B_Current)/ 1000)

我假设我将在某种循环中使用它。

我当前的代码如下:

Sub Bottom()

Dim Count As Integer
Dim i As Integer
Dim Last As Double

Set myRange = Columns("B:B")

Last = Cells(Rows.Count, "B").End(xlUp)
Set r1 = ThisWorkbook.Sheets("Sheet1").Range("A2")

Count = Application.WorksheetFunction.CountA(myRange)

For i = 1 To Count
Set r2 = ThisWorkbook.Sheets("Sheet1").Range("B" & i)
r2 = r1 - Time(0, 0, (Last - r2) / 1000)

Next

End Sub

任何帮助,将不胜感激!

谢谢!!

瓦罗卡巴

VBA比Excel具有更多的“内置功能”,因此在使用VBA时,您实际上并不需要依赖Excel公式。但是,如果您仍然想这样做,则必须执行以下操作:

Range("B" & i).Value = "=Time(0, 0, (" & Last - r2 & ") / 1000)"

要从单元格获取值:

Dim cellVal As Date
cellVal = Range("B" & i).Value

您只需要确保将VBA变量和写入单元格的字符串分开处理(如上所示,用“和”,并且将给定单元格的值存储在正确类型的变量中(如果您将依靠string类型,它将适用于任何内容)。

您的代码中的一些更正:

Sub Bottom()

Dim Count As Integer
Dim i As Integer
Dim Last As Double

Set myRange = Columns("B:B")

Last = 10 'What you want here??
Set r1 = ThisWorkbook.Sheets("Sheet1").Range("A2")
Dim r1Val As Long
r1Val = r1.Value


Count = Application.WorksheetFunction.CountA(myRange)

For i = 1 To Count
    Set r2 = ThisWorkbook.Sheets("Sheet1").Range("B" & i)
    r2.Value = "=" & r1Val & " - Time(0, 0," & CStr(Last) & "/ 1000)"  'r2 = r1 - Time(0, 0, (Last - r2) / 1000) -> r2 = ... Last - r2 does not make any sense; r2 is a whole date and Last - r2 refers to a part of a date
Next

End Sub

这只是代码的简单版本,向您展示了一些您不应该做的事情:您将范围与值混合在一起,没有考虑不同的类型,考虑了我什至无法理解的变量,等等。

只需阅读这段代码,仔细分析它,了解您做错了什么,并通过每次进行一些研究就可以逐步添加功能。想法很简单:

  • 您可以根据需要设置任意数量的单元格。
  • 范围可以具有不同的内容(通过range.Value获取);这些内容与VBA中必须具有相同类型的变量相关联(字符串适用于任何内容)。
  • 写入单元格时,将写入整个文本(如果在前面加上“ =”,则Excel会将其理解为公式)。
  • 当您从一个单元格中读取时,您将获得最终值(如果适用,则是公式中的值)。

等等。

我建议您进行一些研究,并比现在更加习惯VBA。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法使用VBA,Excel在公式中添加=

来自分类Dev

Excel VBA公式与变量

来自分类Dev

如何转换Excel公式以在VBA中工作?

来自分类Dev

单击和取消单击VBA Excel公式中的X框

来自分类Dev

Excel VBA公式中的术语数量可变吗?

来自分类Dev

在Excel公式中调用VBA类模块

来自分类Dev

在VBA Excel中更正公式

来自分类Dev

Excel-没有VBA /宏的水平数据公式?

来自分类Dev

使用NetworkDays.Intl作为Excel VBA中的复杂公式来排除非工作时间?

来自分类Dev

需要制定一个Excel公式,以从我拥有的一些数据中获取开始时间和结束时间

来自分类Dev

在Excel中增加日期时间值的公式

来自分类Dev

单元格公式替换中的Excel VBA错误1004

来自分类Dev

在VBA中的Excel中使用公式创建函数

来自分类Dev

通过VBA在Excel中复制单元格公式

来自分类Dev

Excel公式中的VBA错误

来自分类Dev

Excel VBA中的时间计算

来自分类Dev

根据VBA Excel中的公式分配变量

来自分类Dev

根据Excel VBA中的公式创建单元格值

来自分类Dev

Excel VBA中的公式问题

来自分类Dev

Excel VBA中的列表/表格公式

来自分类Dev

Excel 2016:VBA:公式在宏中引发语法错误

来自分类Dev

VBA,在Excel中的公式中搜索字符串

来自分类Dev

Excel公式或VBA协助

来自分类Dev

VBA 或 Excel 公式将 Excel 中的列数据连接到线性逗号分隔数据

来自分类Dev

excel vba中的循环公式

来自分类Dev

Excel 公式比较数据

来自分类Dev

VBA 从 Excel 中删除公式符号

来自分类Dev

找不到 Excel 公式中引用的数据

来自分类Dev

遍历VBA Excel中公式中的每一列