复制单元格的值,而不是公式

时间:2014-08-19 14:24:46

标签: excel vba excel-vba

我想抓住一小时内当前的分钟数。

我使用NOW()函数,我将其设置的单元格格式设置为mm。所以在单元格显示中,如果它是9:08,我得到08

每当我尝试使用=VALUE(D5)=D5这样的excel公式时,我会得到(我假设这就是它)未格式化的日期字符串。

我现在正在寻找使用VBA来解决我的问题的宏。

我试过了:

Worksheets("Sheet1").Cells(23, 1) = Worksheets("Sheet1").Range("E20").Value

然而,我得到的东西与我的excel公式相同。是否有任何VBA方法只能获取单元格中显示的值并复制到新区域。它并不需要被复制,我只需要在宏中进一步使用该值。

我也可以通过其他方式获取当前小时的当前分钟数。

3 个答案:

答案 0 :(得分:2)

请尽量不要混淆格式数据

为什么不在一个单元格中使用=MINUTE(D5),将该单元格设置为分钟值而不管格式?在VBA中使用该单元格作为源。

=HOUR(D5)会以相似的方式运作,但会返回小时部分。

答案 1 :(得分:0)

如果显示 9:08

然后选择该单元格:

Sub dural()
    Dim s As String
    s = Split(ActiveCell.Text, ":")(1)
    MsgBox s
End Sub

请注意,这是字符串

答案 2 :(得分:0)

可能会这样计算:

=60*(NOW()*24-INT(NOW()*24))