我有一个循环,该循环运行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