Excel 使用变量作为参数复制范围
我是VBA新手,在范围语法和什么是可接受的参数方面有问题 本规范的目的如下:Excel 使用变量作为参数复制范围,excel,vba,Excel,Vba,我是VBA新手,在范围语法和什么是可接受的参数方面有问题 本规范的目的如下: 用户将值输入到表2上的单元格D5中 用户使用按钮激活代码 搜索“配置”表中的值 在定位值后复制相应的范围 将范围粘贴回纸张2中 我尝试复制粘贴的范围是一个块,该块从工作表“Configs”上的选定单元格(D5)开始,一直到找到空单元格为止 Sub search() Dim GCell As Range, Dim box As Integer Dim Avio As String Dim
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
子搜索()
将GCell设置为范围,
将框变暗为整数
Dim Avio作为字符串
尺寸表2作为工作表,配置为工作表
尺寸rw1为字符串,rw2为字符串
Set Configs=ActiveWorkbook.Sheets(“Configs”)
Set Sheet2=ActiveWorkbook.Sheets(“Sheet2”)
Avio=范围(“D5”).值
Set GCell=Configs.Cells.Find(Avio)
框=0
LoopX:
盒子=盒子+1
如果GCell.Offset(框,0).Value=”“,则
rw1=GCell.Offset(1,-1).地址
rw2=GCell.Offset(框,2)。地址
配置范围(“rw1:rw2”)。复制这有帮助吗
Sub search()
Dim GCell As Range
Dim box As Integer
Dim Sheet2 As Worksheet, Configs As Worksheet
Dim rw1 As String, rw2 As String
Set Configs = ActiveWorkbook.Sheets("Configs")
Set Sheet2 = ActiveWorkbook.Sheets("Sheet2")
Dim rngAvio As Range
Set rngAvio = Sheet2.Range("D5")
Set GCell = Configs.Cells.Find(rngAvio.Value)
box = 0
Do While (GCell.Offset(box, 0).Value <> "")
box = box + 1
rw1 = GCell.Offset(1, -1).Address
rw2 = GCell.Offset(box, 2).Address
Configs.Range(rw1 & ":" & rw2).Copy rngAvio.Offset(1, 0)
Loop
End Sub
子搜索()
Dim GCell As范围
将框变暗为整数
尺寸表2作为工作表,配置为工作表
尺寸rw1为字符串,rw2为字符串
Set Configs=ActiveWorkbook.Sheets(“Configs”)
Set Sheet2=ActiveWorkbook.Sheets(“Sheet2”)
Dim rngAvio As射程
设置rngAvio=Sheet2.范围(“D5”)
Set GCell=Configs.Cells.Find(rngAvio.Value)
框=0
执行While(GCell.Offset(框,0.Value“”)
盒子=盒子+1
rw1=GCell.Offset(1,-1).地址
rw2=GCell.Offset(框,2)。地址
配置范围(rw1&“:”&rw2)。复制rngAvio.Offset(1,0)
环
端接头
那么它在哪里出错?你有没有看一下手表的数值,看看代码?如果你想让我对我所做的更改发表评论,尽管问。另外,我不确定你想粘贴什么,所以我留下了它,就像你放的一样。