Office 365 Excel、vba之前版本将CSV文件另存为UTF8格式 子加载数据(WkSht作为工作表,DataSourceName作为字符串,MySQLTable作为字符串,Append作为字符串) 将CSVFile设置为字符串 WkSht.Cells.Replace“,”和“ CSVFile=“\\ant.domain.com\dept\Extracts\”&DataSourceName&“.csv” '将文件保存到桌面。 WkSht.选择 ThisWorkbook.SaveAs文件名:=CSVFile,文件格式:=xlCSVUTF8 连接打开“DSN=cobra2 '如果每次都要删除此表,请删除旧数据。 如果附加“Append”,则 连接执行“截断表”和MySQLTable 如果结束 '以高速在csv中加载新数据。 连接。执行“加载数据本地填充”&替换(CSVFile、“\”、“\\”&“”&)_ “入表”&MySQLTable&“_ “以“,”和结尾的字段”_ “以“\r\n”结尾的行”_ “忽略1行” 设置连接=无 端接头
当我试图对一个仅使用FileFormat:=xlCSV的MySQL 5.7实例执行conn时,上面的代码通常足以产生UTF8字符错误。我试图进行上述更改以确保UTF8编码符合性,但奇怪的是,我们找不到任何东西来替换错误 代码可能有什么问题?文件格式:=xlCSVUTF8Office 365 Excel、vba之前版本将CSV文件另存为UTF8格式 子加载数据(WkSht作为工作表,DataSourceName作为字符串,MySQLTable作为字符串,Append作为字符串) 将CSVFile设置为字符串 WkSht.Cells.Replace“,”和“ CSVFile=“\\ant.domain.com\dept\Extracts\”&DataSourceName&“.csv” '将文件保存到桌面。 WkSht.选择 ThisWorkbook.SaveAs文件名:=CSVFile,文件格式:=xlCSVUTF8 连接打开“DSN=cobra2 '如果每次都要删除此表,请删除旧数据。 如果附加“Append”,则 连接执行“截断表”和MySQLTable 如果结束 '以高速在csv中加载新数据。 连接。执行“加载数据本地填充”&替换(CSVFile、“\”、“\\”&“”&)_ “入表”&MySQLTable&“_ “以“,”和结尾的字段”_ “以“\r\n”结尾的行”_ “忽略1行” 设置连接=无 端接头,excel,vba,Excel,Vba,当我试图对一个仅使用FileFormat:=xlCSV的MySQL 5.7实例执行conn时,上面的代码通常足以产生UTF8字符错误。我试图进行上述更改以确保UTF8编码符合性,但奇怪的是,我们找不到任何东西来替换错误 代码可能有什么问题?文件格式:=xlCSVUTF8 在Excel 2016单机版中当前不可用。它只在O365版本的Excel中可用,有些版本大约是build 16.0.7726您是否在第一个WkSht.Cells.Replace“,”,“或Replace(CSVFile,“\”,
在Excel 2016单机版中当前不可用。它只在O365版本的Excel中可用,有些版本大约是build 16.0.7726您是否在第一个
WkSht.Cells.Replace“,”,“
或Replace(CSVFile,“\”,“\”)
上收到错误?哦,对不起,如果我说它的错误在哪里可能会更好。当我按F8键时,它似乎在这个工作簿中出错。另存为文件名:=CSVFile,文件格式:=xlCSVUTF8;我想这可能是因为单元格替换时出现了错误,所以注释掉替换行会产生不同的错误。1004-应用程序定义或对象定义错误它可能是该行的ThisWorkbook
部分-这取决于您运行代码的确切位置以及您实际打算保存的书籍。根据前面的选择,您可能希望将其替换为ActiveWorkbook
。因此,xlCSVUTF8在Excel 2016 standalone中不可用。由于某些愚蠢的原因,它只能在O365版本中使用。您应该编辑标题以更准确地表示您遇到的问题,以便将来可以用相同的问题帮助其他人:)
Sub LoadData(WkSht As Worksheet, DataSourceName As String, MySQLTable As String, Append As String)
Dim CSVFile As String
WkSht.Cells.Replace ",", ""
CSVFile = "\\ant.domain.com\dept\Extracts\" & DataSourceName & ".csv"
'Save file to desktop.
WkSht.Select
ThisWorkbook.SaveAs Filename:=CSVFile, FileFormat:=xlCSVUTF8
Conn.Open "DSN=cobra2;"
'Delete old data if this table is to be wiped every time.
If Append <> "Append" Then
Conn.Execute "TRUNCATE TABLE " & MySQLTable
End If
'Load new data in csv at high speed.
Conn.Execute "LOAD DATA LOCAL INFILE '" & Replace(CSVFile, "\", "\\") & "' " & _
"INTO TABLE " & MySQLTable & " " & _
"FIELDS TERMINATED BY ',' " & _
"LINES TERMINATED BY '\r\n' " & _
"IGNORE 1 LINES"
Set Conn = Nothing
End Sub