从特定工作表

时间:2015-04-30 14:14:02

标签: excel vba excel-vba

如何将Range对象的值设置为特定工作表的特定范围?

我现在有代码导航并激活正确的工作表和单元格,但是当我设置范围的值并进行复制时,它最终会从工作表1中复制一个范围,当我希望它从另一个中获取值时片材。

以下是我在尝试设置范围时的代码。

    Dim NewValuesRange As Range
    Dim ActiveCellRowNumber As Integer
    Sheets(err).Activate
    Set NewValuesRange = Range(Cells(ActiveCellRowNumber - 1, 1), Cells(ActiveCellRowNumber - 1, 18))
    NewValuesRange.Copy
    NewValuesRange.Insert Shift:=xlDown

我尝试将第四行设为:

    Set NewValuesRange = Sheets(err).Range(Cells(ActiveCellRowNumber - 1, 1), Cells(ActiveCellRowNumber - 1, 18))

    Set NewValuesRange = Worksheet(sheetname).Range(Cells(ActiveCellRowNumber - 1, 1), Cells(ActiveCellRowNumber - 1, 18))

然而,这两个给我1004错误。关于如何解决这个问题的想法?

谢谢!

编辑:错误是已设置的整数,activecellrownumber是已设置的整数,sheetname是已设置的字符串。

2 个答案:

答案 0 :(得分:0)

您必须在 ActiveCellRowNumber

中加入一些值
Sub fhskadjfhs()
    Dim NewValuesRange As Range
    Dim ActiveCellRowNumber As Integer
    Dim Errr As String

    Errr = "Sheet2"
    Sheets(Errr).Activate
    ActiveCellRowNumber = ActiveCell.Row
    Set NewValuesRange = Range(Cells(ActiveCellRowNumber - 1, 1), Cells(ActiveCellRowNumber - 1, 18))
    NewValuesRange.Copy
    NewValuesRange.Insert Shift:=xlDown
End Sub

答案 1 :(得分:0)

尝试这样的事情:

Sub CopyAndInsert()

Dim NewValuesRange As Range
Dim ActiveCellRowNumber As Integer

    With Worksheets(err)
        Set NewValuesRange = .Range(Cells(ActiveCellRowNumber - 1, 1), Cells(ActiveCellRowNumber - 1, 18))

        NewValuesRange.Copy
        NewValuesRange.Insert Shift:=xlDown
    End With
End Sub