level 1
情迷指弹A
楼主
各位大神,如下表,我想写一个根据左侧的名称(1111、2222、3333),将对应区域的数据复制到指定位置
可是在最后部分,就是(3333)这个位置,使用xldown会出错,所以我加了一个 on error goto,但是错误提示
“对象变量或with块变量未设置怎么解决”,标黄的是跳转之后的地方(myx.row 对象变量或with块变量未设置怎么解决)。
请大声帮忙看一下,在下刚开始学习VBA,问题可能比较低级,感谢了!

Sub Copy2Sht()
On Error GoTo last
Dim xrow As Integer, yrow As Integer, myx As Range, n As Range, m As Range
xrow = Range("D4").CurrentRegion.Rows.Count + 3
yrow = Range("D4").CurrentRegion.Columns.Count + 3
Set myx = Range("D4")
For Each n In Range("D4:D" & xrow)
If n.Value <> "" Then
Set myx = Union(myx, n)
End If
Next n
'myx.Copy Range("D30")
For Each myx In Range("D4:D" & xrow)
If myx.Value = "38200" Then
myx.Resize(myx.End(xlDown).Row - myx.Row, yrow).Copy Range("D30")
End If
Next
last:
myx.Resize(xrow - myx.Row, yrow).Copy Range("D30")→此句标黄,myx.row 对象变量或with块变量未设置怎么解决
End Sub
2020年06月21日 04点06分
1
可是在最后部分,就是(3333)这个位置,使用xldown会出错,所以我加了一个 on error goto,但是错误提示
“对象变量或with块变量未设置怎么解决”,标黄的是跳转之后的地方(myx.row 对象变量或with块变量未设置怎么解决)。
请大声帮忙看一下,在下刚开始学习VBA,问题可能比较低级,感谢了!

Sub Copy2Sht()On Error GoTo last
Dim xrow As Integer, yrow As Integer, myx As Range, n As Range, m As Range
xrow = Range("D4").CurrentRegion.Rows.Count + 3
yrow = Range("D4").CurrentRegion.Columns.Count + 3
Set myx = Range("D4")
For Each n In Range("D4:D" & xrow)
If n.Value <> "" Then
Set myx = Union(myx, n)
End If
Next n
'myx.Copy Range("D30")
For Each myx In Range("D4:D" & xrow)
If myx.Value = "38200" Then
myx.Resize(myx.End(xlDown).Row - myx.Row, yrow).Copy Range("D30")
End If
Next
last:
myx.Resize(xrow - myx.Row, yrow).Copy Range("D30")→此句标黄,myx.row 对象变量或with块变量未设置怎么解决
End Sub