我正在尝试编写一个打开Excel的小脚本,将单元格B1
格式化为文本并保存文件,但我无法将#34;格式化为文本"上班。有人知道我在这里失踪的是什么吗?
这条线路不起作用:ExcelObj.Cells("B").Value = "@"
Set ExcelObj = CreateObject("Excel.Application")
ExcelObj.DisplayAlerts = False
ExcelObj.Visible = true ' or false
ExcelObj.Workbooks.Open "C:\Supplier\DK\ExternalPrices\Mapforcecode\Computercity\excelmapping\ExternalPrices.xlsx"
ExcelObj.Cells("B").Value = "@"
ExcelObj.Workbooks(1).SaveAs "\\file-srv1\Scalepoint\Supplier\Catalog\Data\DK\Computercity\Current\ExternalPrices.xlsx", 51
ExcelObj.Quit
答案 0 :(得分:4)
ExcelObj.ActiveSheet.Range("B1").NumberFormat = "@"
答案 1 :(得分:0)
如有疑问,请阅读documentation。 Cells
属性需要行号和列号:
ExcelObj.Cells(1, 2).NumberFormat = "@"
如果您想使用"B1"
表示法,则必须使用Range
属性:
Set wb = ExcelObj.Workbooks.Open "C:\Supplier\...\ExternalPrices.xlsx"
wb.Sheets(1).Range("B1").NumberFormat = "@"
wb.SaveAs "\\file-srv1\Scalepoint\...\ExternalPrices.xlsx", 51
wb.Close
但请注意,Range
与活动单元格相关,因此根据活动单元格是否为A1
,您可能会引用不同的单元格。 Cells
的索引是绝对的。