【问题标题】:Copying & Pasting a Date Value in a VBA Macro在 VBA 宏中复制和粘贴日期值
【发布时间】:2014-09-15 16:23:24
【问题描述】:

我编写了一个宏来将多个单元格值从一个工作表复制并粘贴到另一个工作表。除了包含日期值的字段外,这在所有字段上都已成功。

例如,当单元格包含“08-Jan-14”时,粘贴的值为整数“41647”。

如何确保新工作表收到的粘贴值采用日期格式?

Sub place_data(Source As Worksheet, Destination As Worksheet, Optional WorkbookName As String,  
Optional rowToWrite As Integer)

Dim iSourceHeader As Integer
Dim iCol As Integer
Dim lSourceEnd As Long
Dim lDestEnd As Long
Dim rSource As Range
Dim rDestination As Range
Dim rngFrom As Excel.Range
Dim rngTo As Excel.Range

Set rngFrom = Workbooks(WorkbookName).Sheets(Source.Name).Range("D51")
Set rngTo = ThisWorkbook.Sheets("Self Test Summary").Range("A" & rowToWrite)

rngFrom.Copy
rngTo.PasteSpecial Paste:=xlValues

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    您只是粘贴值而不是格式。粘贴后需要多加一行

    rngFrom.Copy
    rngTo.PasteSpecial Paste:=xlValues
    rngTo.Numberformat = "DD-MMM-YY"
    

    另一种方式

    rngTo.Value = rngFrom.Value
    rngTo.Numberformat = "DD-MMM-YY"
    

    【讨论】:

    • 非常感谢!我花了一个小时找到这个并解决了我的问题。
    【解决方案2】:

    替换:

    rngFrom.Copy
    rngTo.PasteSpecial Paste:=xlValues
    

    与:

    rngFrom.Copy rngTo
    

    【讨论】:

    • + 1 表示一个班轮。然而,这种方法有一个缺点。它也会复制其他不相关的格式。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-10
    • 1970-01-01
    • 2021-07-28
    • 1970-01-01
    • 2017-12-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多