通过VBA将数据导入Excel,并获得与手动相同的样式
我知道如何手动将excel连接到mysql,即单击数据选项卡->其他源->数据连接向导 加载的数据以这种样式显示。请注意,默认情况下,首行的背景颜色与下面的行不同,其他行的背景颜色也会改变,边框颜色为白色,等等 我还学习了如何通过vba导入数据通过VBA将数据导入Excel,并获得与手动相同的样式,vba,excel,Vba,Excel,我知道如何手动将excel连接到mysql,即单击数据选项卡->其他源->数据连接向导 加载的数据以这种样式显示。请注意,默认情况下,首行的背景颜色与下面的行不同,其他行的背景颜色也会改变,边框颜色为白色,等等 我还学习了如何通过vba导入数据 Sub ConnetMySQL() Set conn = New ADODB.Connection conn.ConnectionString = "Driver={MySQL ODBC 5.3 Unicode Driver};" &
Sub ConnetMySQL()
Set conn = New ADODB.Connection
conn.ConnectionString = "Driver={MySQL ODBC 5.3 Unicode Driver};" & _
"Server = localhost; " & _
"Poer = 3306" & _
"Database = NBA;" & _
"UID = root; PASSWORD = ; OPTION=3"
conn.Open
Set rs = New ADODB.Recordset
strSQL = "SELECT * FROM `nba`.`game`"
rs.Open strSQL, conn
Dim myArray()
myArray = rs.GetRows()
kolumner = UBound(myArray, 1)
rader = UBound(myArray, 2)
For K = 0 To kolumner ' Using For loop data are displayed
Worksheets("Game").Range("a5").Offset(0, K).Value = rs.Fields(K).Name
For R = 0 To rader
Worksheets("Game").Range("A5").Offset(R + 1, K).Value = myArray(K, R)
Next
Next
rs.Close
'MsgBox strOutput
conn.Close
Set conn = Nothing
Set rs = Nothing
End Sub
但是vba加载的数据没有任何样式。
我相信我的代码中一定漏掉了什么。我应该如何修改代码,使vba加载的数据与手动加载的数据具有相同的样式?下面的代码将在活动工作表上查找1个表,假设唯一的信息是该表。桌子的大小无关紧要。它将假定存在标题。然后,它将按照图片的格式进行格式化
Sub test()
Set X = Sheets("Sheet1").UsedRange
ActiveSheet.ListObjects.Add(xlSrcRange, X, , xlYes).Name = _
"Table1"
X.Select
ActiveSheet.ListObjects("Table1").TableStyle = "TableStyleMedium9"
End Sub
下面的代码未经测试,但应该适合您:
Sub ConnetMySQL()
Set conn = New ADODB.Connection
conn.ConnectionString = "Driver={MySQL ODBC 5.3 Unicode Driver};" & _
"Server = localhost; " & _
"Poer = 3306" & _
"Database = NBA;" & _
"UID = root; PASSWORD = ; OPTION=3"
conn.Open
Set rs = New ADODB.Recordset
strSQL = "SELECT * FROM `nba`.`game`"
rs.Open strSQL, conn
Dim myArray()
myArray = rs.GetRows()
kolumner = UBound(myArray, 1)
rader = UBound(myArray, 2)
For K = 0 To kolumner ' Using For loop data are displayed
Worksheets("Game").Range("a5").Offset(0, K).Value = rs.Fields(K).Name
For R = 0 To rader
Worksheets("Game").Range("A5").Offset(R + 1, K).Value = myArray(K, R)
Next
Next
Set X = Sheets("Game").UsedRange
Sheets("Game").ListObjects.Add(xlSrcRange, X, , xlYes).Name = _
"Table1"
X.Select
Sheets("Game").ListObjects("Table1").TableStyle = "TableStyleMedium9"
rs.Close
'MsgBox strOutput
conn.Close
Set conn = Nothing
Set rs = Nothing
end sub