公式:
runmode:1;
m:PEAKBARS(4,5,1),linethick0;
tmp:readtest(m),linethick0;
自定义函数:
Function readtest(Formula,M)
'系统会在逐K线模式解释公式时的每个周期都会调用此函数一遍,因此设计时应该注重程序的执行效率,不要重复的执行一些没必要的代码
DataCount = UBound(M)
If DataCount <> Formula.DataSize-1 Then
Exit Function
End If
'定义一个计算返回的数组
Dim ResultMa
Redim ResultMa(DataCount)
For i = 0 To Formula.DataSize-1
ResultMa(i) = document.GetPrivateProfileInt("aa", M(i),0 , "C:\1.ini")
NEXT
readtest=ResultMa
End Function
1.ini 内容
[aa]
0=0
1=2
2=4
3=6
===============================================
请问:
if 条件为真 then tag:=writetest(M,99); 中的writetest该如何写呢。也是序列转换吗?
Function writetest(Formula,m,value)
tag = document.WritePrivateProfileInt("aa",m,value , "C:\1.ini")
End Function
以上我写的没成功。不能改1.ini中的数据。
前面的例子你是一点都没看懂啊
Function writetest(Formula,m,value)
DataCount = UBound(M)
If DataCount <> Formula.DataSize-1 Then
Exit Function
End If
For i = 0 To Formula.DataSize-1
document.WritePrivateProfileInt("aa", M(i),value , "C:\1.ini")
NEXT
readtest=0
End Function
多谢版主。
Function writetest(Formula,m,value)
DataCount = UBound(M)
If DataCount <> Formula.DataSize-1 Then
Exit Function
End If
For i = 0 To Formula.DataSize-1
document.WritePrivateProfileInt("aa", M(i),value , "C:\1.ini")
NEXT
readtest=0
End Function
Function readtest(Formula,m)
'系统会在逐K线模式解释公式时的每个周期都会调用此函数一遍,因此设计时应该注重程序的执行效率,不要重复的执行一些没必要的代码
DataCount = UBound(M)
If DataCount <> Formula.DataSize-1 Then
Exit Function
End If
'定义一个计算返回的数组
Dim ResultMa
Redim ResultMa(DataCount)
For i = 0 To Formula.DataSize-1
ResultMa(i) = document.GetPrivateProfileInt("aa", M(i),0 , "C:\1.ini")
NEXT
readtest=ResultMa
End Function
夜以继日地开发~~~~~这么晚还发贴!!!
这两个函数通不过啊
提示是:编译器错误 1044 调用过程(SUB)不能使用括号
正要用这两个函数
不懂VBA麻烦版主把这两个函数写好
先谢过