【发布时间】:2015-10-22 13:14:51
【问题描述】:
我有一个 Outlook VBA 脚本,它正在执行一些电子邮件解析并将结果放入由该脚本创建的新 excel 文档中。
有问题的 VBA 展望部分是:
sub test
Dim oXLApp As Object, oXLwb As Object, oXLws As Object
'~~> Establish an EXCEL application object
On Error Resume Next
Set oXLApp = GetObject(, "Excel.Application")
'~~> If not found then create new instance
If Err.Number <> 0 Then
Set oXLApp = CreateObject("Excel.Application")
End If
Err.Clear
On Error GoTo 0
Set oXLwb = oXLApp.Workbooks.Add
Set oXLws = oXLwb.Sheets("Sheet1")
' lots of stuff here that parses emails and puts them in the spreadsheet
Call formatRN(oXLws)
end sub
Sub formatRN(xlsheet As Object)
' row and column sizes
xlsheet.Cells.RowHeight = 15
xlsheet.Columns("A:A").ColumnWidth = 50
xlsheet.Columns("B:B").EntireColumn.AutoFit
xlsheet.Columns("C:C").EntireColumn.AutoFit
xlsheet.Columns("D:D").ColumnWidth = 50
xlsheet.Columns("E:E").ColumnWidth = 50
xlsheet.Columns("F:F").ColumnWidth = 50
xlsheet.Columns("G:G").ColumnWidth = 50
xlsheet.Columns("H:H").ColumnWidth = 50
xlsheet.Columns("I:I").ColumnWidth = 50
' conditional format for empty cells
xlsheet.Columns("A:I").Select
xlsheet.Columns("A:I").FormatConditions.Add Type:=xlExpression, Formula1:="=LEN(TRIM(A1))=0"
xlsheet.Columns("A:I").FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With xlsheet.Columns("A:I").FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorDark1
.TintAndShade = -0.499984740745262
End With
xlsheet.Columns("A:I").FormatConditions(1).StopIfTrue = False
End Sub
行: xlsheet.Columns("A:I").FormatConditions.Add Type:=xlExpression, Formula1:="=LEN(TRIM(A1))=0"
给我错误:“无效的过程调用或参数”
以下代码在 Excel 中运行良好。我不确定问题是什么:
sub test()
Dim xlsheet As Worksheet
Set xlsheet = ActiveSheet
xlsheet.Columns("A:I").Select
xlsheet.Columns("A:I").FormatConditions.Add Type:=xlExpression, Formula1:="=LEN(TRIM(A1))=0"
xlsheet.Columns("A:I").FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With xlsheet.Columns("A:I").FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorDark1
.TintAndShade = -0.499984740745262
End With
xlsheet.Columns("A:I").FormatConditions(1).StopIfTrue = False
end sub
由于我是在脚本中制作 excel 表,我真的不能在 excel 表中预先存在这个 vba 代码,我宁愿不必在计算机上的 excel 中放置单独的全局级 vba 代码此代码的最终用户。
任何提示都会很棒,谢谢!
【问题讨论】:
-
@LuukLag 请停止替换 word 宏。标签不好的事实并不意味着不能使用这个词......
-
@Jasper 宏作为一个词也不应该以不正确的方式使用。因为这些东西不是宏,而是 vba 代码。是的,MS-Office 提倡不当使用宏这个词,但我们不应该被它愚弄。此外,更改宏这个词将让新用户了解正确的术语,并使他们更容易在未来的搜索中找到他们正在寻找的东西。您也看过我在编辑时发布的链接吗?