复制时采用字符​​串数据格式并进行隐秘

时间:2019-03-26 13:55:24

标签: excel vba excel-formula

我需要将CYYMMDD文本格式的日期提取为DD/MM/YYYY日期格式

我想我在这里错过了一步,因为在输入“ .Formula”等时没有得到提示

我也肯定有一种更好的方法,而无需先粘贴值

Dim ws As Worksheet, lastRow As Long

Set ws = Worksheets("SALEREP17")
lastRow = ws.Cells(ws.Rows.Count, "B").End(xlUp).Row

With ws.Range("B" & lastRow)
    .Copy Destination:=Worksheets("PAGE 4-COMMERCIALS").Cells(17, 3)
End With

Set ws = Worksheets("PAGE 4-COMMERCIALS")

With Cells(17, 2)
    .Formula = "=RIGHT(RC[1],2)&""/""&MID(RC[1],4,2)&""/20""&MID(RC[1],2,2)"
    .Value = .Value
End With

enter image description here

enter image description here

因此,此操作是从ODBC连接的“上次更改日期”中拉出最下面的一行。然后将其粘贴到“报告”标签中,并将其转换为日期并删除公式

然后我将继续删除(17, 3)中的文本,但是必须有比这更好的方法吗?

2 个答案:

答案 0 :(得分:1)

range("a1").value=dateserial(mid(x,2,2),mid(x,4,2),mid(x,6,2)),其中x是您的日期。

答案 1 :(得分:1)

这应该可以满足您的需求

Dim ws As Worksheet, lastRow As Long, c As Range

Set ws = Worksheets("SALEREP17")
With ws
    lastRow = .Cells(.Rows.Count, "B").End(xlUp).Row
    Set c = ws.Cells(lastRow, 2)
    Worksheets("PAGE 4-COMMERCIALS").Cells(17, 3).Value = DateSerial(Mid(c, 2, 2), Mid(c, 4, 2), Mid(c, 6, 2))
End With

请注意:(1000 * Left(c, 1))部分不是严格必需的,除非您希望代码能够运行数百年。