VBA在循环期间写入下一个单元格

时间:2019-09-16 19:53:02

标签: excel vba

我有一个循环,该循环运行SQL代码并在循环中更改列,效果很好。问题在于它会自行覆盖而不是每次在我的Excel表中通过循环都给我新行。因此,在我的工作表上,它看起来像只有最后一个值而没有其他任何值的表。我可以看到它在每个循环中都无法正常工作,并且获取新值并不能保存。我尝试了Cells(x, 1).value =。但是它不喜欢使用WITH语句。

Sub GetPlexNumbers()
   Dim CountSize As Integer
   Mold = Sheets("Sheet2").Range("A1").Value
   CountSize = Sheets("Sheet2").Range("C1").Value
   'For X = 3 To CountSize
   'PLEXNumber = Sheets("Sheet2").Range("A3").Value
   Dim y As Long
   Dim x As Long
   y = 13
   x = 12
   Do Until y = 25
      With ActiveWorkbook.Connections("ChineTrends").OLEDBConnection
         .CommandText = "declare @start as datetime declare @end as datetime declare @maxtemp as decimal(5,1) declare @plexnumber as integer " & _
                        "Set @plexnumber = 166085" & _
                        "Set @start = (Select Starttime FROM [ChinePress].[dbo].[Results] where PlexNumber = @plexnumber)" & _
                        "Set @end =  (Select EndTime FROM [ChinePress].[dbo].[Results] where PlexNumber = @plexnumber)" & _
                        "Set @maxtemp = (Select max(tc" & y & ") from [chinepress].[dbo].[trend] where t_stamp between @start and @end)" & _
                        "Select 'TC" & y & "' as 'TC',min(TC" & y & ") as 'Min', @maxtemp as 'Max' from chinepress.dbo.trend where t_stamp between (select  min(t_stamp) from [ChinePress].[dbo].[Trend] Where t_stamp between @start and @End and tc" & y & " = @maxtemp) and @end"
         ActiveWorkbook.Connections("ChineTrends").Refresh
      End With
      y = y + 1
   Loop
   'Next X
End Sub

0 个答案:

没有答案