我无法弄清.FieldName

我正在尝试创build我的第一个创buildExcel电子表格的VBScript。

我从Excelmacros中获得了大部分代码,但是项目已经改变,所以现在VBScript需要在外面生存。

我在rStart = .Range上崩溃,但我改变了代码

Set rStart = objExcel.Range("A1") 

现在我崩溃了如果有人可以解释为什么一些代码以.ColumnWidth,.Range,.Cells开头

我查了一些这些东西,它可以来自一些地方。 不知道如何确定哪一个。

例如

.Range可以来自Excel.Application或Excel.Application.AutoFilter或Global.Range等

 Set objExcel = CreateObject("Excel.Application") objExcel.Visible = True Set objWorkbook = objExcel.Workbooks.Add() objWorkbook.SaveAs(strFileName) Dim lMonth 'As Variant Dim strMonth 'As String Dim rStart 'As Range Dim strAddress 'As String Dim rCell 'As Range Dim lDays 'As Long Dim dDate 'As Date 'Add new sheet and format 'Worksheets.Add objExcel.Worksheets.Add 'ActiveWindow.DisplayGridlines = False objExcel.ActiveWindow.DisplayGridlines = False With objExcel.Cells .ColumnWidth = 6 .Font.Size = 8 End With 'Create the Month headings For lMonth = 1 To 4 Select Case lMonth Case 1 strMonth = "January" Set rStart = .Range("A1") Case 2 strMonth = "April" Set rStart = .Range("A8") Case 3 strMonth = "July" Set rStart = .Range("A15") Case 4 strMonth = "October" Set rStart = .Range("A22") End Select 'Merge, AutoFill and align months With rStart rStart.Value = strMonth .HorizontalAlignment = xlCenter // Crashing here .Interior.ColorIndex = 6 .Font.Bold = True With .Range("A1:G1") .Merge .BorderAround xlContinuous End With .Range("A1:G1").AutoFill Destination=.Range("A1:U1") End With Next 

我试过使用

  rStart.HorizonalAlignment = xlCenter objExcel.Range.HorizontalAlignment = xlCenter 

我正在尝试创build一个外部VBScript,它将创build一个Excel文件(Excel文档中没有模块macros或VBA项目)。

错误消息显示“无法设置Range类的Horizo​​ntalAlignment属性”

当通过interrtrop访问excel时,你需要记住你不再能够访问在excel中设置的excel常量,所以你必须使用分配给这些常量的值或者自己声明这些常量。

Excel常量枚举

在代码顶部添加常量。

Const xlCenter = -4108

鉴于这是在VBScript,并假设你已经导入了Excel命名空间,请尝试:

 rStart.HorizonalAlignment = Constants.xlCenter 

在你提到的'点符号'上。

在面向对象的语言中,对象具有属于它们的方法和属性。 操作代码要求每个方法/属性适当地“限定”其“父”对象。 所以,例如,一个单元格中的值可能是“完全限定的”,即:

 objExcel.Workbooks("MyWorkbook").Sheets("MySheet").Range("MyRange").Value = 10 

您已经在许多地方在您的代码中使用了这种符号。

您可以使用With .. End With结构在特定对象上实现多个语句。 这样做,你可以使用shortform参考“父母” (时期)那么,在上面的简单例子中:

 With objExcel.Workbooks("MyWorkbook").Sheets("MySheet").Range("MyRange") .value = 10 .HorizontalAlignment = Constants.xlCenter End With 

看看这里的微软参考With 。

对象的可用性及其各自的方法和属性可以在适当的“对象模型”中find。 您可以在这里开始探索Excel对象模型 。 如果您正在使用Word或Outlook,那么您需要参考各自的对象模型。

这应该能帮助你理清你的一些代码,并将你作为第一个端口的关键的初始参考源指向你。 这个VBScript语言参考也可能是一个有用的资源给你。