这可能听起来很愚蠢,但有人可以解释为什么我需要在vb.net中包含这个额外的代码,当我改变单元格的颜色时,我不需要在VBA中。 我写了一个程序,使用microsoft.office.interop引用创建并保存一个excel文件。这里是我的代码:为什么代码改变vb.net中的单元格颜色与vba不同?
Public Class Export_Excel_Class
Public excelapp As Microsoft.Office.Interop.Excel.Application
Public excelbook As Microsoft.Office.Interop.Excel.Workbook
Public excelsheet As Microsoft.Office.Interop.Excel.Worksheet
Public Sub newExcel()
excelapp = New Microsoft.Office.Interop.Excel.Application
excelbook = excelapp.Workbooks.Add()
excelsheet = excelbook.Sheets("sheet1")
excelsheet.Range("A1").Select()
excelsheet.Range("a1").AddComment("hello")
excelsheet.Range("a1:B10").Interior.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Yellow)
excelbook.SaveAs("C:\Users\DatOneBull\Desktop\Excel_Test")
excelapp.Quit()
End Sub
在那台本来我曾试图excelsheet.Range("a1:B10").Interior.Color =
并试图设置颜色,但颜色proptery是只读的颜色就行了。我在网上找到了解决方案,但没有解释。有人能告诉我这段代码意味着什么,它为什么能够设置th范围的颜色值?
System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Yellow)
很显然'Color'属性不是只读的,因为您将它设置在您发布的代码中。原来的问题大概是你试图给一个不属于这个类型的属性赋一个'System.Drawing.Color'值。这个“额外的代码”正在创建一个适当类型的值,即'Integer',它表示所需的'System.Drawing.Color'。 – jmcilhinney