适用于.Formula,但不适用于.FormulaArray

时间:2015-07-27 07:19:28

标签: excel vba excel-vba

当我使用Activecell.Formula时,我有以下代码可以正常工作...但是当我使用Activecell.FormulaArray

时,给我一个1004无法设置Range Class的FormulaArray属性
public static String xl_write(String xl_res, String [][] xData,int sheet_no, int row_count) {

    //System.out.println("Sheet no:" +sheet_no);
    System.out.println("row count:" + row_count);
    //System.out.println("xdata:" +xData[i][j]);
    System.out.println("write res:" +xl_res);

    XSSFWorkbook wb = new XSSFWorkbook();

    XSSFSheet ws = wb.createSheet("TestResult " + sheet_no);

    for(int i=0;i<=row_count;i++) {
        XSSFRow wr = ws.createRow(i);

        for(int j=0;j<=4;j++){

            System.out.println("I:" +i);
            System.out.println("J:" +j);
            System.out.println("xdata:" +xData);
            System.out.println("xdata:" +xData [i] [j]);

            XSSFCell wc = wr.createCell(j);
            wc.setCellValue(xData[i][j]);
        }
    }

    try {
        FileOutputStream fos=new FileOutputStream(xl_res);
        wb.write(fos);
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch(IOException e) {
        e.printStackTrace();
    }
    //return xData;
    return xl_res;
}

1 个答案:

答案 0 :(得分:0)

左方括号位于initPath的错误位置。它应该在一开始。

这是不好的做法。您应该在formulaValue =语句中使用左方括号而不是变量本身。

例如。

formulaValue = "=VLOOKUP(MIN(IF(ABS('[" & initPath & (n / 3 - 2) & " " .......