vba - 粘贴值而不是公式

标签 vba excel excel-2010

我想将单元格中的某些值从一个选项卡复制到另一个选项卡中。

    Sheets("Equities").Select
    Range("B5").Select
    Range(Selection, Selection.End(xlDown)).Select
    Range(Selection, Selection.End(xlToRight)).Select
    Selection.Copy
    Sheets("ZSM").Select
    Range("B5").Select
    ActiveSheet.Paste
    Sheets("Bonds").Select
    Range("B5").Select
    Range(Selection, Selection.End(xlDown)).Select
    Range(Selection, Selection.End(xlToRight)).Select
    Selection.Copy
    Sheets("ZSM").Select
    Range("B5").Select
    Selection.End(xlDown).Select
    Selection.End(xlToRight).Select
    ActiveCell.Offset(1, 1).Select
    ActiveSheet.Paste

我想修改代码以复制公式中的值(我只想要公式返回的值)(例如“= J5*K24”)。

我按以下方式修改了代码:

    Sheets("Equities").Select
    Range("B5").Select
    Range(Selection, Selection.End(xlDown)).Select
    Range(Selection, Selection.End(xlToRight)).Select
    Selection.Copy
    Sheets("ZSM").Select
    Range("B5").Select
    ActiveSheet.PasteSpecial               ###here
    Sheets("Bonds").Select
    Range("B5").Select
    Range(Selection, Selection.End(xlDown)).Select
    Range(Selection, Selection.End(xlToRight)).Select
    Selection.Copy
    Sheets("ZSM").Select
    Range("B5").Select
    Selection.End(xlDown).Select
    Selection.End(xlToRight).Select
    ActiveCell.Offset(1, 1).Select
    ActiveSheet.PasteSpecial                  ##here

我阅读了一些有关 PasteSpecial 方法的内容,但无法应用它。

最佳答案

忘记 PasteSpecial xlValues 并执行直接值传输,从而完全绕过剪贴板。

dim zsm as worksheet

set zsm = workSheets("ZSM")

with workSheets("Equities")
    with .Range(.range(.cells(5, "B"), .cells(.rows.count, "B").end(xlup)), _
                .range(.cells(5, "B"), .cells(5, .columns.count).end(xltoleft)))
        zsm.cells(5, "B").resize(.rows.count, .columns.count) = .value
    end with
end with

with workSheets("Bonds")
    with .Range(.range(.cells(5, "B"), .cells(.rows.count, "B").end(xlup)), _
                .range(.cells(5, "B"), .cells(5, .columns.count).end(xltoleft)))
        zsm.cells(zsm.rows.count, "B").end(xlup).offset(1, 1).resize(.rows.count, .columns.count) = .value
    end with
end with

您确定最后一个偏移量应该是 offset(1, 1) 而不是 offset(1, 0) 吗?

关于vba - 粘贴值而不是公式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52389836/

相关文章:

vb.net - 开始在 Visual Basic 中将文件写入 Excel

excel - 使用 Apache POI 库在 Excel 工作表中添加饼图?

.net - 使用剪贴板时出现 Spreadsheetgear 错误

vba - 将隐藏行的单元格设为空白

ms-access - me.visible = false 而不是关闭表单

粘贴 A x B 模式的 Excel 公式

Excel 2010 比较多列(2 列与其他 2 列)

excel - 在单独的工作表中显示表格的一部分

ms-access - 将 MS Access VBA 中表中的单列写入 .txt 文件

sql - VBA在访问功能中按日期搜索