格式化单元格从一般到文本

时间:2015-06-26 14:03:31

标签: excel-vba vbscript vba excel

我正在尝试编写一个打开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

2 个答案:

答案 0 :(得分:4)

ExcelObj.ActiveSheet.Range("B1").NumberFormat = "@"

答案 1 :(得分:0)

如有疑问,请阅读documentationCells属性需要行号和列号:

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的索引是绝对的。