如何使用VBA冻结excel中的活动行?

时间:2016-09-02 08:52:49

标签: excel vba excel-vba row

就像标题所说的那样,我需要编写一个VBA代码来复制我选择的整行,并且只粘贴这些值,以便之后不能更改结果。

我已经设法在我工作的最后一个文件中为ActiveCell执行此操作,但我只需要更改一个单元格。这是我使用的代码:

Sub Freeze()
  ActiveCell.Copy
    ActiveCell.PasteSpecial Paste:=xlPasteValues
End Sub

然而,对于这个新文件,我必须复制整行,并且我不想选择每个单独的单元格。当我在新文件中使用它时,它只适用于第一个单元格。我怎样才能使它适用于整行?

感谢。

2 个答案:

答案 0 :(得分:0)

使用下面的简单代码(尽量避免选择单元格和活动单元格):

Sub Test()

Call Freeze(3, 7)
Call Freeze(4, 8)

End Sub


Sub Freeze(rowsource As Long, rowdest As Long)

Rows(rowsource).Copy
Rows(rowdest).PasteSpecial Paste:=xlPasteValues

End Sub

答案 1 :(得分:0)

  

粘贴:= xlPasteValues

除非您尝试复制格式,否则无需复制粘贴值。

试试这个。用相关的工作表名称替换工作表名称。同时将X,Y替换为相关的行号。如果您使用多行,请将Rows(X)更改为Range("X:X"),同样Range("Y:Y")

Thisworkbook.Sheets("Sheet1").Rows(X).Value =  _
Thisworkbook.Sheets("Sheet2").Rows(Y).Value