有2个excel表,一个是日文文档,一个是中日文对照表,要求写一个VBA程序调用这个表,将日文文档中的关键字替换成中文,中日表中,中文和日文分别在A列和B列,(要求是多个sheet页都可以用),谢谢大神。

解决方案 »

  1.   

    你这样做使用起来效率就低了,先把两者做成一个完整的对照表保存下来,然后加载到内存中给查询调用,这样对于大量查询替换而言效率更改一下。用伪代码写一下实现你描述功能的方法:
    Function String GetChinese(string jp, WorkBook wbJP, WorkBook wbCN)
    ' 获取位置 (sheetIndex, rowIndex, cellIndex)
    int i, row, col
    for i = 1 to wbJP.WorkSheets.Count
    WorkSheet ws = wbJP.WorkSheets[i]
     for row = 1 to MAXROWS '最多的行数
      for col = 1 to MAXCOLUMNS '最多的列数 
        string text = ws(row, col)
        if text.length = 0 then goto NEXTROW  '遇到空的内容表示一行处理完成,结束本行处理
        if text = jp then GetChinese = wbCN.WookSheet[i](row, col) '找到匹配内容了,返回对应中文内容
      next col
    NEXTROW:
          if ws(row + 1, 1).length = 0 then goto NEXTSHEET '遇到空的内容结束本WorkSheet处理
        next row
    NEXTSHEET:
    next i
        GetChinese = jp '没有匹配内容,返回输入字符串
    End Function 
      

  2.   

    要 excel 去干这样的事情真有点免为其难了,为什么不用数据库呢?
      

  3.   

    1. 将你的翻译Excel的两列加载到数组;
    2. 将需要转换的Excel的内容逐个Cell提取文本,与数组进行比对查找和替换;
    3. 将替换后的文本输出到结果Excel。