【发布时间】:2013-12-04 17:52:49
【问题描述】:
我是 VBA 新手,在 Range 语法和可接受的参数方面存在问题。
这段代码的目的如下:
- 用户在 Sheet2 的 D5 单元格中输入值
- 用户使用按钮激活代码
- 在“配置”表中搜索值
- 定位值后复制对应范围
- 将范围粘贴回 Sheet2
我试图复制粘贴的范围是一个从工作表“配置”上的选定单元格 (D5) 开始的块,一直持续到找到一个空单元格。
Sub search()
Dim GCell As Range,
Dim box As Integer
Dim Avio As String
Dim Sheet2 As Worksheet, Configs As Worksheet
Dim rw1 As String, rw2 As String
Set Configs = ActiveWorkbook.Sheets("Configs")
Set Sheet2 = ActiveWorkbook.Sheets("Sheet2")
Avio = Range("D5").Value
Set GCell = Configs.Cells.Find(Avio)
box = 0
LoopX:
box = box + 1
If GCell.Offset(box, 0).Value = "" Then
rw1 = GCell.Offset(1, -1).Address
rw2 = GCell.Offset(box, 2).Address
Configs.Range("rw1:rw2").Copy <-- this syntax doesnt seem to work...
Sheet2.Range("Avio.Offset(1,0)").Paste <-- I know this is wrong, but I would like the range to be pasted just below the selected cell on Sheet2
Else: GoTo LoopX
End If
End Sub
【问题讨论】:
-
那么它在哪里给出错误?你有没有通过代码查看观察值?