我正在尝试创建我的第一个创建Excel电子表格的VBScript。
我从Excel宏中获得了大部分代码,但项目已经改变,所以现在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
我正在尝试创建一个外部VBScript,它将创建一个Excel文件(Excel文档中没有模块宏或VBA项目)。
错误消息显示"无法设置Range类的HorizontalAlignment属性"
答案 0 :(得分:4)
通过intertrop访问excel时,你需要记住你不再能访问excel中设置的excel常量,因此你必须使用分配给这些常量的值或自己声明这些常量。
在代码顶部添加常量。
Const xlCenter = -4108
答案 1 :(得分:1)
鉴于这是在vbscript中,假设您已导入Excel命名空间,请尝试:
rStart.HorizonalAlignment = Constants.xlCenter
点上符号'你提到的。
在面向对象语言中,对象具有属于它们的方法和属性。操作代码要求每个方法/属性都要正确,合格。到它的父母'宾语。因此,例如,单元格中的值可以是完全合格的'即:
objExcel.Workbooks("MyWorkbook").Sheets("MySheet").Range("MyRange").Value = 10
您已在许多地方的代码中使用过这种表示法。
您可以使用With.. End With结构在特定对象上实现多个语句。在这样做时,您可以参考“父母”和“父母”。使用短格式。(句号)因此,在上面的简单示例中:
With objExcel.Workbooks("MyWorkbook").Sheets("MySheet").Range("MyRange")
.value = 10
.HorizontalAlignment = Constants.xlCenter
End With
在这里查看Microsoft reference for With。
对象的可用性及其各自的方法和属性可以在相应的对象模型中找到。您可以开始exploration of the Excel object model here。例如,如果您使用的是Word或Outlook,则需要引用它们各自的对象模型。
这可以帮助您理顺一些代码并指出作为第一个呼叫端口的关键初始参考源。此VBScript Language Reference也可能是您的有用资源。