VBA: What is causing this string argument passed to ParamArray to get changed to a number (that looks suspiciously like a pointer)?
问题 FINAL EDIT: It does indeed appear to be a compiler bug - see the accepted answer. Using VBA within Excel 2007, I have the following code in 'Class1': Option Explicit Public Function strange(dummy As String, ParamArray pa()) Debug.Print pa(LBound(pa)) End Function Public Sub not_strange(dummy As String, ParamArray pa()) Debug.Print pa(LBound(pa)) End Sub Public Function also_not_strange(ParamArray pa()) Debug.Print pa(LBound(pa)) End Function and some mode code in a module: Option Explicit