我在Excel 2010 vba
中有此功能,我无法将其翻译为Google脚本
Sub CalMoy()
Dim i As Integer
Dim dMWhit As Double
Dim dMBlack As Double
dMBlack = 0
dMWhit = 0
For i = 69 To 88
j = 6
For j = 6 To 32
If (Evaluate(Chr(i) & j).Value = "Blanc") Then
dMWhit = dMWhit + Evaluate("C" & j).Value
End If
If (Evaluate(Chr(i) & j).Value = "Noir") Then
dMBlack = dMBlack + Evaluate("C" & j).Value
End If
Next j
Evaluate(Chr(i) & 33).Value = dMWhit
Evaluate(Chr(i) & 34).Value = dMBlack
Next i
End Sub
我尝试使用此代码,但它不是成功的
function CalMoy(){
var dMBlack = 0;
var dMWhit = 0;
var col='';
for (i = 69; i= 88; i++){
var col=String.fromCharCode(i);
var j = 6
for (j = 6; j=32; j++){
if(eval(col+ j + "value") = "Blanc"){
dMWhit = dMWhit + eval("C" & j).Value
}
if(eval(col+ j).Value = "Noir"){
dMBlack = dMBlack + eval("C" & j).Value
}
}
eval(col + 33).Value = dMWhit
eval(col + 34).Value = dMBlack
}
}
答案 0 :(得分:0)
在For
条件中,您有i=88
,它应为i<88
。
另外,在这一行:
if(eval(col+ j + "value") = "Blanc"){
你想做什么?如果您尝试连接文本,则无需使用eval()
方法。在任何情况下,您用于eval()
的语法都是错误的。而且您无法评估文本值。 eval()
方法的全部内容必须是字符串。您必须在两端都有双引号。 “价值”应该是变量吗?它应该是文本没有意义,因为“值”字符串永远不会等于“Blanc”。
这是我到目前为止所做的,但在你提供更多信息之前我不能再进一步了:
function CalMoy(){
var dMBlack = 0;
var dMWhit = 0;
var col='';
for (var i = 69; i < 88; i++){
var col = String.fromCharCode(i);
for (var j = 6; j<32; j++){
if (eval("col + j + value") = "Blanc") {
dMWhit = dMWhit + eval("C + j").Value
}
if (eval(col+ j).Value = "Noir") {
dMBlack = dMBlack + eval("C" & j).Value;
}
}
eval("col + 33").Value = dMWhit;
eval("col + 34").Value = dMBlack;
}
}