【问题标题】:Paste values in Excel and not formula在 Excel 中粘贴值而不是公式
【发布时间】:2017-12-15 20:02:26
【问题描述】:

我需要在 Excel 电子表格中粘贴一个值,而不是公式。
我的代码是:

.Cells(lRow, 2).Formula = _
"=IF(A" & lRow & "<"" "",A" & lRow & "&TEXT(E" & lRow & ",""mmddyy""),"""")"

代码是将两个单元格合并为一个单元格,并且每一行都不同。

【问题讨论】:

  • 为您编辑了您的问题,但下次要包含代码,将其缩进 4 个空格,一切都很好。无论如何,根据我对您问题的理解发布了答案。
  • @pmk 有趣的是,您正在使用我的答案,但没有将其标记为正确。如果你得到一个正确的答案,那么你应该通过点击答案的复选标记来标记。
  • 好的,谢谢。我是新来的,但正在学习。而且答案还不正确,还在努力中。

标签: excel vba


【解决方案1】:

完成此操作的另一种可能方法是:

Sub foo()
'Sheet1.Cells(lRow, 2).Formula = "=IF(A" & lRow & "<"" "",A" & lRow & "&TEXT(E" & lRow & ",""mmddyy""),"""")"
Dim NewValue As Variant
lRow = Sheet1.Cells(Sheet1.Rows.Count, "A").End(xlUp).Row
If Range("A" & lRow) <> "" Then
    NewValue = Range("A" & lRow).Value & Format(Range("E" & lRow).Value, "mmddyy")
    Sheet1.Cells(lRow, 2).Value = NewValue
End If
End Sub

警告 E 列中的日期值的格式应正确,以便按预期工作。

【讨论】:

    【解决方案2】:

    看来您仍然需要公式的结果,所以只需添加另一行将公式更改为值。比如:

    .Cells(lRow, 2).Value = .Cells(lRow, 2).Value
    

    【讨论】:

    • 感谢您的帮助和建议。您建议的代码确实有效,但它会提取错误的数字而不是“日期”。它将单元格“A”与单元格“D”中的日期合并。您的建议最终将单元格“A”与通用日期合并。结果始终为“3010000”。第一个数字 (3) 是正确的,它是单元格“A”的正确值,只是单元格“D”的日期错误
    • @user2828628 它不是从Column D 提取日期。您的原始代码来自Column E。如果您需要 Column D 中的日期,请将公式更改为:"=IF(A" &amp; lRow &amp; "&lt;"" "",A" &amp; lRow &amp; "&amp;TEXT(D" &amp; lRow &amp; ",""mmddyy""),"""")"
    • 是的,你是对的,它是从 E 列中提取,而不是 D。我的错误,对不起
    • @user2828628 别担心,伙计,无需抱歉,您的问题解决了吗?
    • 不,问题没有解决。它从单元格 A 中提取数据,但从单元格 E 中提取的日期错误,始终为 010000。
    【解决方案3】:
    Sub test()
        lRow = 2 
        If Range("A" & lRow).Value <> "" Then
            Range("B" & lRow).Value = Range("A" & lRow).Value & Application.WorksheetFunction.Text(Range("D" & lRow), "mmddyy")
        Else
            Range("B" & lRow).Value = ""
        End If
    End Sub
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多