我是宏的新手,也是录制它们的人。我创建了一个带有参数的webquery,它根据我选择的单元格编辑了查询的一部分。我现在必须运行此Web查询800次以上。所以我记录了自己,并选中了“使用相对引用”。但它始终将webquery放在我记录宏的同一单元格中,而不是我为web查询选择的单元格旁边的单元格中。
例如:我根据A1中的引用在A2中运行查询。所以,我希望宏通过使用B1中的信息运行查询并将其放入B2中,但它总是将其放入A2中。
代码!
With ActiveSheet.QueryTables.Add(Connection:= _
"FINDER;C:\Users\alillien.ASSOCIATED_NT\AppData\Roaming\Microsoft \Queries\990Finder.iqy" _
, Destination:=Range("$C$576"))
.Name = "990 Finder_284"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = False
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlSpecifiedTables
.WebFormatting = xlWebFormattingAll
.WebTables = """MainContent_GridView1"""
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
ActiveCell.Offset(2, 0).Range("A1").Select
End Sub
我知道这是因为“目的地:=范围(”$ C $ 576“)”行,但我不知道如何将其编辑为相对于我的起点/我点击我的可调整查询的位置
非常感谢!
答案 0 :(得分:0)
好的,你可以尝试一下。
替换:
范围( “$ C $ 576”)
使用:
ActiveCell.Offset(1,0)
这将有效地使当前引用的范围为$ C $ 576更改为工作表中的活动单元格,但是一个单元格下降(我认为这是您想要的)。如果您想要一个单元格,请将其更改为(0,1)
答案 1 :(得分:0)
我认为在您想要使用它的上下文中不允许使用RC表示法。我尝试过它并没有用,但你可以用同样的方式使用 cells 对象。
创建一些变量来保存你所在的当前行和列。
使用它们可以将它应用于"目的地:=范围(单元格(curRow + 1,curCol)。地址)"你的代码部分:
Dim curRow As Integer
Dim curCol As Integer
curRow = ActiveCell.Row
curCol = ActiveCell.Column
With ActiveSheet.QueryTables.Add(Connection:= _
"FINDER;C:\Users\alillien.ASSOCIATED_NT\AppData\Roaming\Microsoft \Queries\990Finder.iqy" _
, Destination:=Range(Cells(curRow + 1, curCol).Address))
.Name = "990 Finder_284"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = False
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlSpecifiedTables
.WebFormatting = xlWebFormattingAll
.WebTables = """MainContent_GridView1"""
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With