当我从Developer窗口运行它时,我的宏运行得很好。 我正在使用用BERT工具包创建的“R.ajseason”用户定义函数(允许用户使用R创建excel函数,以及其他功能)。它有3个参数:
然而,当我尝试将其分配给形状时,会发生一些奇怪的事情。它不会返回范围内不同的调整值,而只返回整个范围内的第一个调整值,如下所示:
为什么从开发人员窗口运行代码的结果与单击代码分配的形状不同?我怎么能解决这个问题?
这是我的代码:
Sub Dessaz()
Dim wb1 As Workbook
Set wb1 = ActiveWorkbook
Dim wsNSA As Worksheet
Set wsNSA = wb1.Worksheets("NSA")
Dim wsSA As Worksheet
Set wsSA = wb1.Worksheets("SA")
Dim col As Range
LR = wsNSA.Cells(3, 1).End(xlDown).Row
LC = wsNSA.Cells(3, 1).End(xlToRight).Column
inicio = wsNSA.Cells(3, 1).Value
inicio = Year(inicio) & "-" & Month(inicio) & "-" & "01"
p = 12
wsNSA.Activate
For Each col In wsNSA.Range(Cells(3, 2), Cells(LR, LC)).Columns
wsNSA.Activate
nsa = wsNSA.Range(Cells(3, col.Column), Cells(LR, col.Column))
wsSA.Activate
sa = Application.Run("R.ajseason", nsa, inicio, p)
wsSA.Range(Cells(3, col.Column), Cells(LR, col.Column)) = sa
Next
wsNSA.Activate
Data = wsNSA.Range(Cells(3, 1), Cells(LR, 1))
wsSA.Activate
wsSA.Range(Cells(3, 1), Cells(LR, 1)) = Data
End Sub