从特定工作表设置范围对象

你如何将Range Object的值设置为特定表格的特定范围?

我现在有代码导航并激活了正确的表格和单元格,但是当我设置范围的值并复制时,它最终会从表单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错误。 任何想法如何解决这个问题?

谢谢!

编辑:err是一个已经设置的整数,activecellrownumber是一个已经设置的整数,sheetname是已设置的string。

您需要使用Worksheet对象来限定Range和Cells调用:

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

请注意使用.Range.Cells而不是RangeCells 。 我假设你的代码是在一个工作表代码模块中,在这种情况下,任何对“ Range或“ Cells引用都不会明确地指向包含代码的工作表,而不是活动工作表。 (即在这种情况下默认为Me.Range而不是Application.Range

您必须在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 

尝试这样的事情:

 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