VBA - 粘贴为值

时间:2017-07-13 06:50:08

标签: excel vba excel-vba copy-paste

我正在努力处理代码,代码应该复制单元并将其粘贴到下面的行(下面的行是空的/如果没有,它会搜索其他行)

 protected void btnSave_Click(object sender, EventArgs e)
        {
            String gender;
            if (rdBtnMale.Checked)
                gender = rdBtnMale.Text;
            else
                gender = rdBtnFemale.Text;

            string subject = "";
            if (cboxPhysics.Checked)
            {
                subject = cboxPhysics.Text;
            }
            if (cboxChemistry.Checked)
            {
                if (subject != "")
                { subject = subject + ","; }
                subject = subject + cboxChemistry.Text;
            }
            if (cboxBiology.Checked)
            {
                if (subject != "")
                { subject = subject + ","; }
                subject = subject + cboxBiology.Text;
            }

这样,它工作正常,但在上面的单元格中是公式,因此我只需要复制值,因为结果应该相同。我发现,我应该替换这部分:

 Sub CopyRows2()

Dim LastRow As Long

With Worksheets("OUTPUT") ' <-- here should be the Sheet's name
    LastRow = .Cells(.Rows.Count, "O").End(xlUp).Row ' last row in column B

For i = 2 To LastRow
If Range("O" & i) > "" And Range("O" & i + 1) = "" Then
    Range("O" & i).Copy
    Range("O" & i + 1).Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
Else
    End If
Next

End With

ActiveWindow.ScrollRow = 1 'scrolling the screen to the top

End Sub

由这部分:

ActiveSheet.Paste

但是一旦我这样做了,它就向我显示了一个错误信息运行时错误1004 并且在复制第一个单元格之后宏已经停留,然后找到空单元格...但它没有插入了值,但没有继续搜索。

我可以请你帮忙吗?我在那里错过了什么?我看不出错误。

谢谢!

2 个答案:

答案 0 :(得分:0)

适合我:

Range("O" & i).Copy
Range("O" & i + 1).PasteSpecial xlPasteValues
Application.CutCopyMode = False

无需选择此处。

答案 1 :(得分:0)

您应该尝试将代码放在模块中,而不是放在工作表中!