仅在单元格中复制数据值

时间:2016-05-27 06:12:38

标签: excel vba excel-vba

有人知道如何复制单元格中的数据,不包括其格式吗?就像数据本身是唯一要复制的值。我试过这些但是没有用。

src.Range("F" & i).Copy Destination:=dest.Range("E" & destRow).PasteSpecial Paste:=xlPasteValues 

我还必须解析src.Range("F" & i)内的数据,因为它包含日期和时间值,但我必须只复制日期。任何建议都会很棒。

4 个答案:

答案 0 :(得分:2)

当您只想要单元格中的数据时,您真的不必复制粘贴。您所要做的就是将数据转换为所需的格式并分配给单元格。

dest.Range("E" & destRow) = CDate(Format(src.Range("F" & i).Value, "MM/DD/YYYY"))

修改

试试这个:

dest.Range("E" & destRow) = src.Range("F" & i)
dest.Range("E" & destRow).NumberFormat = "MM/DD/YYYY"

答案 1 :(得分:1)

dest.Range("E" & destRow) = DateValue(src.Range("F" & i))

答案 2 :(得分:0)

您可以设置单元格的 NumberFormat

Range("E" & destRow).NumberFormat = "m/d/yyyy"

修改

价值本身赢了更改。你可以" cut"价值:

Left(Range("E" & destRow).Value, 10)

答案 3 :(得分:0)

您可以从Range object获得的最新信息是Range.Value2 property;这将有效地返回一个double,因为您的单元格包含日期(整数)和时间(整数的分数,双精度)。通过将其转换为整数来删除.Value2的小数部分。

x = sorted([43, 43, 46, ....., 487, 496, 502])
y = np.linspace(0.8, 0.08, len(x)) # can not set y as this way which lead to the wrong result
def func(x, a, b):
    return a * x +b # I want a curve function in fact, linear is simple to understand here
popt, pcov = curve_fit(func, x, y)

func(42, *popt)
0.47056348146450089 # I want 0.8 here

使用Range.NumberFormat property以所需的显示格式将其作为日期取回。

请注意,这与另一个答案相似,但时间实际上已从单元格值中删除,而不是留在那里但不显示。