.xlsb binary workbooks are not supported
时间: 2023-08-30 11:03:22 浏览: 63
.xlsb二进制工作簿不受支持。这意味着在某些软件和应用程序中,无法打开或使用.xlsb二进制格式的工作簿。与普通的.xlsx工作簿相比,.xlsb二进制工作簿使用了不同的文件结构和存储方式。
由于二进制工作簿采用了更高效的存储方法,因此可以节省更多的磁盘空间并提高打开和保存文件的速度。但这也导致了二进制工作簿在不支持该文件格式的软件中无法正常使用。
如果您需要在不支持.xlsb格式的软件中使用工作簿,可以考虑将文件转换为.xlsx格式或其他支持的文件格式。转换工作簿格式可以使用Microsoft Excel或其他电子表格软件来完成。
在转换文件格式之前,请确保备份您的工作簿数据,以免丢失任何重要信息。另外,还应该检查目标软件或应用程序是否支持所选文件格式,以确保成功打开和使用转换后的文件。
总而言之,由于某些软件不支持.xlsb二进制工作簿格式,因此在这些软件中无法打开或使用该文件。您可以将工作簿转换为其他支持的文件格式来解决这个问题。
相关问题
Excel工作簿有三个工作表"GU","Sheet2","Sheet3";需使用VBA完成以下操作: 1.删除工作表“Sheet2","Sheet3" 2.在工作表“GU"的AO1:AU1填入标题SO&Line NO,Customer Name,Cust. Code,Sales Channel:,Customer Contact Name:,Customer Contact Email:,Date 3.AO2=I2&J2,AP2=A2,AQ2=VLOOKUP($AP2,[LIST.xlsb]Code!$B$1:$F$8,MATCH(AQ$1,[LIST.xlsb]Code!$B$1:$F$1,0),0) AR2=VLOOKUP($AP2,[LIST.xlsb]Code!$B$1:$F$8,MATCH(AQ$1,[LIST.xlsb]Code!$B$1:$F$1,0),0) AS2=VLOOKUP($AP2,[LIST.xlsb]Code!$B$1:$F$8,MATCH(AQ$1,[LIST.xlsb]Code!$B$1:$F$1,0),0) AT2=VLOOKUP($AP2,[LIST.xlsb]Code!$B$1:$F$8,MATCH(AQ$1,[LIST.xlsb]Code!$B$1:$F$1,0),0) 4.按照函数填充对应行,清除值为0的单元格内容
以下是VBA代码实现:
```
Sub ModifyWorksheet()
'删除工作表
Application.DisplayAlerts = False
Sheets(Array("Sheet2", "Sheet3")).Delete
Application.DisplayAlerts = True
'在工作表GU的AO1:AU1填入标题
Sheets("GU").Range("AO1").Value = "SO&Line NO"
Sheets("GU").Range("AP1").Value = "Customer Name"
Sheets("GU").Range("AQ1").Value = "Cust. Code"
Sheets("GU").Range("AR1").Value = "Sales Channel:"
Sheets("GU").Range("AS1").Value = "Customer Contact Name:"
Sheets("GU").Range("AT1").Value = "Customer Contact Email:"
Sheets("GU").Range("AU1").Value = "Date"
'填充AO2:AU2单元格
Sheets("GU").Range("AO2").Value = Sheets("I2").Value & Sheets("J2").Value
Sheets("GU").Range("AP2").Value = Sheets("A2").Value
Sheets("GU").Range("AQ2").Formula = "=VLOOKUP($AP2,[LIST.xlsb]Code!$B$1:$F$8,MATCH(AQ$1,[LIST.xlsb]Code!$B$1:$F$1,0),0)"
Sheets("GU").Range("AR2").Formula = "=VLOOKUP($AP2,[LIST.xlsb]Code!$B$1:$F$8,MATCH(AQ$1,[LIST.xlsb]Code!$B$1:$F$1,0),0)"
Sheets("GU").Range("AS2").Formula = "=VLOOKUP($AP2,[LIST.xlsb]Code!$B$1:$F$8,MATCH(AQ$1,[LIST.xlsb]Code!$B$1:$F$1,0),0)"
Sheets("GU").Range("AT2").Formula = "=VLOOKUP($AP2,[LIST.xlsb]Code!$B$1:$F$8,MATCH(AQ$1,[LIST.xlsb]Code!$B$1:$F$1,0),0)"
'自动填充公式
Dim lastRow As Long
lastRow = Sheets("GU").Cells(Rows.Count, "A").End(xlUp).Row
Sheets("GU").Range("AO2:AU" & lastRow).FillDown
'清除值为0的单元格
Dim cell As Range
For Each cell In Sheets("GU").UsedRange
If cell.Value = 0 Then
cell.ClearContents
End If
Next cell
End Sub
```
注意替换代码中的文件名和工作表名称。
VBA ADO 链接当前工作簿后缀为.xlsb的EXCEL文件
可以使用以下代码连接当前工作簿后缀为.xlsb的Excel文件:
```
Sub ConnectToExcel()
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
'设置连接字符串
conn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.FullName & ";Extended Properties=""Excel 12.0;HDR=Yes;IMEX=1"";"
'打开连接
conn.Open
'执行查询操作
rs.Open "SELECT * FROM [Sheet1$]", conn
'读取数据
Do While Not rs.EOF
Debug.Print rs.Fields(0).Value
rs.MoveNext
Loop
'关闭连接
rs.Close
conn.Close
End Sub
```
需要注意的是,连接字符串中的 Provider 和 Extended Properties 参数需要根据实际情况进行调整,具体可以参考 Microsoft 的官方文档。另外,IMEX=1 参数可以保证在读取数据时,Excel 会将所有列都当作文本类型处理,避免出现数据格式转换问题。