gpt4 book ai didi

vba - 无法在 Excel 2007 VBA 中使用 Option Strict Off 进行后期绑定(bind)

转载 作者:行者123 更新时间:2023-12-04 21:56:21 25 4
gpt4 key购买 nike

我正在编写一些旨在与 Excel 2007 和更新版本兼容的 VBA 代码。从 Excel 2013 开始,图表系列过滤选项和相关的 Chart.FullSeriesCollection对象被引入,我在我的代码中包含了 If语句来选择这个对象或旧的 .SeriesCollection一个取决于 Excel 版本。

但是,VBA 无法编译 Excel 2007 中的代码,因为 .FullSeriesCollection没有定义。我想尝试后期绑定(bind),以便编译器跳过 If包含该 undefined object 的语句,但 Excel 2007(使用 VBA 版本 6.3)无法识别 Option Strict Off要么行;我只能选择Base , Compare , ExplicitPrivate关注Option陈述。

如何让较旧的 VBA 编译器跳过 .FullSeriesCollection 所在的行用来?我已经学习 VBA 3 天了,如果这非常明显,请原谅。

我的代码的相关部分:

Private Sub EventChart_MouseDown(ByVal Button As Long, _
ByVal Shift As Long, _
ByVal x As Long, _
ByVal y As Long)

Dim ElementID As Long, Arg1 As Long, Arg2 As Long, Arg1b As Long
Dim myX As Variant, myY As Double
Dim xlVrsion As Integer, verSerColl As Object

xlVrsion = CInt(Left(Application.Version, 2)) 'Get Excel version and convert to an integer (2007 = 13.0; 2010 = 14.0; 2013 = 15.0; 2016 = 16.0)

With ActiveChart
.GetChartElement x, y, ElementID, Arg1, Arg2

If ElementID = xlSeries Then
If xlVrsion >= 15 Then 'Check if Excel version is equal or newer than 2013.
Set verSerColl = .FullSeriesCollection(Arg1)
Else
Set verSerColl = .SeriesCollection(Arg1)
End If

'[More irrelevant code]

最佳答案

您可能可以使用 compiler constants

#If VBA7 Then     'Check if Excel version is equal or newer than 2013.
Set verSerColl = .FullSeriesCollection(Arg1)
#Else
Set verSerColl = .SeriesCollection(Arg1)
#End If

关于vba - 无法在 Excel 2007 VBA 中使用 Option Strict Off 进行后期绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43944928/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com