首先是宽恕,如果它是一个重复的主题,我看,但也许不应该...... 我英语不好。
然后我会解释我的问题,我正在尝试为excel写一个宏vba。
此宏通过单击按钮('chargement_des_donnees()')执行。
1)除了第一行之外,它清空我的工作表“正在处理的详细信息” 2)然后,执行一个SQL查询IBM并复制我的得分表干净。 3)处理我的数据: - 删除与查询标题对应的第二行, - 恢复一些值放入我的“sheet1” - 实现我的动态交叉表“sheet1”。
问题在于,当我尝试删除我的第二行“详细信息正在处理中”时,所有内容都被删除(第一行除外)。 当我使用'Debug'时它可以正常工作。
我觉得我的“EntireRow.Delete”循环。
我的代码:
Sub refresh_sql()
Sheets("Detail SO in process").Select
sqlstring = "my request"
connstring = _
"ODBC;DSN=HSDAS6 - SITEWWCS;UID=poiriet;"
With ActiveSheet.QueryTables.Add(Connection:=connstring, _
Destination:=Range("A2"), Sql:=sqlstring)
.Refresh
End With
Worksheets("Detail SO in process").Rows(2).EntireRow.Delete
End Sub
请帮帮我,解释一下。
感谢您的建议。
答案 0 :(得分:0)
与您编辑的帖子相关,关于EntireRow.Delete的问题的答案如下。
你可以尝试使用这个:
Sub refresh_sql()
Sheets("Detail SO in process").Select
sqlstring = "my request"
connstring = _
"ODBC;DSN=HSDAS6 - SITEWWCS;UID=poiriet;"
With ActiveSheet.QueryTables.Add(Connection:=connstring, _
Destination:=Range("A2"), Sql:=sqlstring)
.Refresh
End With
Worksheets("Detail SO in process").Range("A2").EntireRow.Delete
End Sub
您还可以使用行删除,如下所示:
Sub refresh_sql()
'YOUR OTHER CODE
Worksheets("Detail SO in process").Rows(2).Delete
End Sub
这两个语句执行的操作与删除Excel工作表中的第二行(完全)相同,然后转移其余部分。
注意:如果您仍遇到同样的问题,请检查代码的其他部分。行删除语句本身可以正常工作。
希望这会有所帮助。