我试图自动检测xlsx文件中的数据范围,并将其转换为格式化的表。我希望它与Excel格式的表(应用程序中的CTRL)相同。
我收到一个错误消息:'Object不支持方法的这个属性: wb.ListObjects‘。
我展示了VBA使用ListObjects创建一个表。VB脚本中有什么不同吗?
Const xlDelimited = 1
Const xlTextQualifierDoubleQuote = 1
Const xlOpenXMLWorkbook = 51
Set xl = CreateObject("Excel.Application")
''Working: Convert csv to xlsx. Is all this necessary for a simple csv to xlsx convert?
xl.Workbooks.OpenText "C:\Users\me\Desktop\Automate\data2.csv", , , xlDelimited _
, xlTextQualifierDoubleQuote, True, False, False, True, False, False, _
, Array(Array(1,2), Array(2,2), Array(3,2), Array(4,1), Array(5,2) _
, Array(6,1), Array(7,1), Array(8,1), Array(9,1), Array(10,1), Array(11,1))
Set wb = xl.ActiveWorkbook
'This is still not working...
'wb.ListObjects.add xlSrcRange,x1.Range(),,XlYes
wb.ListObjects(1).method
''Working: Save file with current date.
wb.SaveAs "C:\Users\me\Desktop\Automate\data2" & "(" & Right(Day(Date),2) & MonthName(Month(Date()),1) & Year(Date) & ")" & ".xlsx", xlOpenXMLWorkbook, , , , False
wb.Close
xl.Quit谢谢!
发布于 2015-03-07 06:18:16
Const xlOpenXMLWorkbook = 51
Const xlYes = 1
Const xlSrcRange = 1
Dim wb,sht
Set xl = CreateObject("Excel.Application")
'xl.visible=true 'uncomment if you want to see Excel
Set wb = xl.Workbooks.open("D:\Analysis\VBScript\data.csv")
Set sht = wb.worksheets(1)
'create a new listobject from the Range with top-left=A1
sht.ListObjects.Add xlSrcRange, sht.Range("A1").CurrentRegion, , xlYes
xl.DisplayAlerts = False 'don't show "a file already exists..."
wb.SaveAs "D:\Analysis\VBScript\dataOut.xlsx", xlOpenXMLWorkbook, , , , False
xl.DisplayAlerts = True
wb.Close
xl.Quit发布于 2015-03-07 00:33:50
vbscript中没有可用的常量。您必须在中查找值并将它们放入其中。例如xlYes = 1,所以用1代替。
根据对象模型,它是工作表中ListObjects的集合,而不是单个对象,因此wb.ListObjects(1).method。
根据对象模型,没有添加方法。
Help有一个关于如何使用它的示例。
https://stackoverflow.com/questions/28909786
复制相似问题