Vba 方法';范围';对象的'_工作表';引用其他工作表失败
这是我的密码:Vba 方法';范围';对象的'_工作表';引用其他工作表失败,vba,Vba,这是我的密码: Sub showUnique() Dim VAriable As String Dim irange As Range Dim car As Integer Dim Source As Worksheet Dim Target As Worksheet Dim inew As Range Set Source = ActiveSheet Range("f2").Activate 'starting point Do If ActiveCell.Value <
Sub showUnique()
Dim VAriable As String
Dim irange As Range
Dim car As Integer
Dim Source As Worksheet
Dim Target As Worksheet
Dim inew As Range
Set Source = ActiveSheet
Range("f2").Activate 'starting point
Do
If ActiveCell.Value <> ActiveCell.Offset(1, 0).Value Then
VAriable = ActiveCell.Value
Set irange = Range("f1:f1000")
car = -Application.CountIf(irange, VAriable) + 1
Set inew = Range(ActiveCell.Offset(0, 0), ActiveCell.Offset(car, 0)).EntireRow
'inew.Select
Set Target = Worksheets.Add(after:=Sheets(Sheets.count)) ' after last sheet
Target.Name = VAriable
' 'header row
Source.Range("a1:h1").Copy Target.Range("a1")
'handle Vehicle sales
' Set Target = Worksheets.Add(after:=Source) 'after active shett
' 'copy data
Source.Range(inew).Copy Target.Range("a2")
Target.Range("a1").CurrentRegion.Columns.AutoFit
writeKPI
End If
Sheets("Sales").Activate
ActiveCell.Offset(1, 0).Activate
Loop Until IsEmpty(ActiveCell)
End Sub
我试图引用不同工作表上的一个范围,并将该数据复制到新工作表中您的
inew
变量是一个范围
,因此您应该使用
inew.Copy Target.Range("a2")
但是,您应该检查代码并:
- 清除
s(请参阅)激活
- 完全限定您对
范围的引用。例如,我认为
可能是命中注定的Set inew = Range(ActiveCell.Offset(0, 0), ActiveCell.Offset(car, 0)).EntireRow
Set inew = Sheets("Sales").Range(ActiveCell.Offset(0, 0), ActiveCell.Offset(car, 0)).EntireRow
Set inew = Sheets("Sales").Range(ActiveCell.Offset(0, 0), ActiveCell.Offset(car, 0)).EntireRow