将excel vba翻译为谷歌脚本

时间:2015-02-03 16:05:52

标签: google-apps-script

我在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 

    }
}

1 个答案:

答案 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;
    }
}