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

Vba 复制单元格的值,而不是公式,vba,excel,Vba,Excel,我试图在一小时内只抓取当前的分钟数 我使用NOW()函数,并将其所在单元格的格式设置为仅mm。所以在单元格显示中,如果是9:08,我得到08 每当我尝试像=VALUE(D5)或=D5这样的excel公式时,我都会得到(我假设是这样的)一个未格式化的日期字符串 我现在正在寻找使用VBA的宏来解决我的问题 我试过: 工作表(“Sheet1”).单元格(23,1)=工作表(“Sheet1”).范围(“E20”).值 然而,我得到了与我的excel公式相同的东西。是否有任何VBA方法可以仅获取在单元格中

我试图在一小时内只抓取当前的分钟数

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

每当我尝试像
=VALUE(D5)
=D5
这样的excel公式时,我都会得到(我假设是这样的)一个未格式化的日期字符串

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

我试过:

工作表(“Sheet1”).单元格(23,1)=工作表(“Sheet1”).范围(“E20”).值

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

我也愿意使用其他方法来获取当前小时内的当前分钟数。

不要混淆格式和数据

为什么不在一个单元格中使用
=MINUTE(D5)
,不管格式如何,它都会将该单元格设置为MINUTE值?将该单元格用作VBA中的源


=HOUR(D5)
将以类似方式运行,但返回小时部分。

如果显示9:08

然后选择该单元格并:

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

注意这是一个字符串

可以这样计算:

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

目标是什么?获取字符串“08”?或者得到值8?对于字符串:Excel中有一个=TEXT(值“[formatpattern]”)函数<代码>=文本(D5,“mm”)