格式化单元格从一般到文本
Format cell from general to text
我正在尝试编写一个小脚本来打开 Excel,将单元格 B1
格式化为文本并保存文件,但我无法使 "format to text" 工作。有人知道我在这里错过了什么吗?
这条线不起作用: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
ExcelObj.ActiveSheet.Range("B1").NumberFormat = "@"
如有疑问,请阅读 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
的索引是绝对的。
我正在尝试编写一个小脚本来打开 Excel,将单元格 B1
格式化为文本并保存文件,但我无法使 "format to text" 工作。有人知道我在这里错过了什么吗?
这条线不起作用: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
ExcelObj.ActiveSheet.Range("B1").NumberFormat = "@"
如有疑问,请阅读 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
的索引是绝对的。