遇到VBA问题。有一个用VBA编写的SQL,它从数据库中获取数据并将其复制到Excel。但是有些值是空的,需要从Excel电子表格中存在这些值的其他列数据中填充。
我写了这段代码:
For Each cell In Range("AI2:AI999")
'test if cell is empty
If cell.Value = "" Then
cell.Value = "temp"
End If
Next
试图包含' temp'单元格为空的字符串(从sql读取的字符串)。
当我从vba窗口运行sub时,它们被包含在报告中。但是当试图在按钮点击时从excel运行sub时,它没有填充" temp"空细胞。怎么可能解决这个问题?
完整代码:
Sub ConnectoOracleServer()
Dim con As ADODB.Connection
Dim rec As ADODB.Recordset
Dim cmd As ADODB.Command
Dim sql As String
Dim par1 As String
Dim par2 As String
par1 = (Sheets("Input").Cells(2, "A"))
par2 = (Sheets("Input").Cells(2, "B"))
Set con =New ADODB.Connection
Set rec = New ADODB.Recordset
Set cmd = New ADODB.Command Sheets("Output").Range("A2:AJ99999").ClearContents
con.Open
sql Set rec = con.Execute ("my sql function")
If Not rec.EOF Then
Sheets("Output").Range("A2").CopyFromRecordset rec
rec.Close
MsgBox "DATA READY!", vbInformation
Else
MsgBox "NO ITEMS RECONCILED ON SELECTED DATES!", vbCritical
End If
If CBool(con.State And adStateOpen) Then con.Close
Set rec = Nothing
Set con = Nothing
'trying to overwrite empty cells from sql to proper values
For Each cell In Range("AI2:AI999")
'test if cell is empty
If cell.Value = ""
Then cell.Value = "tp"
End If
Next
End Sub

那么应该如何将一些值插入空单元格?