今天一位网友向我求助,他要在Excel中填写

 

PDAA20124527000001
PDAA20124527000002
PDAA20124527000003

这样的序列,但在Excel中无法智能填充。

 

这个可以编写VBA代码来完成,不过我对VBA不太熟,还是用JavaScript写了一个。

 

  1. <FORM>  
  2. <p><font color="blue" size="+2">序列生成器 v0.0.0001</font></p>  
  3. <p>固定部分:<INPUT TYPE="text" ID="txtFixed" value="PDAA20124527" /></p>  
  4. <p>起始值:<INPUT TYPE="text" ID="txtBegin" value="1"> 结束值:<INPUT TYPE="text" ID="txtEnd" value="999999"> 步长:<INPUT TYPE="text" ID="txtStep" value="1"> <INPUT TYPE="button" VALUE="生成序列" ONCLICK="genCode();"></p>  
  5. </FORM>  
  6. <script language="javascript">  
  7. function genCode()  
  8. {  
  9.     sFixed = (document.getElementById("txtFixed")).value;  
  10.     if (0==sFixed.length)  
  11.     {  
  12.         if (!confirm("未指示固定部分!\n要继续生成吗?"))  
  13.         {  
  14.             return;  
  15.         }  
  16.     }  
  17.  
  18.     iStart = (document.getElementById("txtBegin")).value;  
  19.     if (0==iStart.length)  
  20.     {  
  21.         alert("未指示起始值!");  
  22.         return;  
  23.     }  
  24.     iStart = iStart/1;  
  25.  
  26.     iEnd = (document.getElementById("txtEnd")).value;  
  27.     if (0==iEnd.length)  
  28.     {  
  29.         alert("未指示结束值!");  
  30.         return;  
  31.     }  
  32.     iEnd = iEnd/1;  
  33.  
  34.     iStep = (document.getElementById("txtStep")).value;  
  35.     if (0==iStep.length)  
  36.     {  
  37.         if (!confirm("未指示结束值!\n要默认为1,继续生成吗?"))  
  38.         {  
  39.             return;  
  40.         }  
  41.     }  
  42.     iStep = iStep/1;  
  43.       
  44.     genSerialCode();  
  45. }  
  46.  
  47.  
  48. function genSerialCode()  
  49. {  
  50.     document.write('<form name="frmTest">');  
  51.     document.write('<TEXTAREA ROWS="30" COLS="90" name="taTest">');  
  52.  
  53.     for (i=iStart; i < iEnd+1; i+=iStep)  
  54.     {  
  55.         document.write(sFixed);  
  56.         var j = i;    
  57.         while( (j = j*10) < iEnd )  
  58.         {  
  59.         //document.writeln("j="+j);  
  60.             document.write("0");  
  61.         }  
  62.         document.writeln(i);  
  63.     }  
  64.  
  65.     document.write('<\/TEXTAREA><\/form>');  
  66.     var tempval=eval("document.frmTest.taTest");  
  67.     tempval.focus();  
  68.     tempval.select();  
  69.     therange=tempval.createTextRange();  
  70.     therange.execCommand("Copy");  
  71. }  
  72. </script> 

改进了一下:

 

  1. <FORM>  
  2. <p><font color="blue" size="+2">序列生成器 v0.0.0001</font></p>  
  3. <p>固定部分:<INPUT TYPE="text" ID="txtFixed" value="PDAA20124527" /></p>  
  4. <p>起始值:<INPUT TYPE="text" ID="txtBegin" value="1"> 结束值:<INPUT TYPE="text" ID="txtEnd" value="999999"> 步长:<INPUT TYPE="text" ID="txtStep" value="1"> <INPUT TYPE="button" VALUE="生成序列" ONCLICK="genCode();"></p>  
  5. </FORM>  
  6. <script language="javascript">  
  7. function genCode()  
  8. {  
  9.     sFixed = (document.getElementById("txtFixed")).value;  
  10.     if (0==sFixed.length)  
  11.     {  
  12.         if (!confirm("未指示固定部分!\n要继续生成吗?"))  
  13.         {  
  14.             return;  
  15.         }  
  16.     }  
  17.  
  18.     iStart = (document.getElementById("txtBegin")).value;  
  19.     if (0==iStart.length)  
  20.     {  
  21.         alert("未指示起始值!");  
  22.         return;  
  23.     }  
  24.     iStart = iStart/1;  
  25.  
  26.     iEnd = (document.getElementById("txtEnd")).value;  
  27.     if (0==iEnd.length)  
  28.     {  
  29.         alert("未指示结束值!");  
  30.         return;  
  31.     }  
  32.     iEnd = iEnd/1;  
  33.  
  34.     iStep = (document.getElementById("txtStep")).value;  
  35.     if (0==iStep.length)  
  36.     {  
  37.         if (!confirm("未指示结束值!\n要默认为1,继续生成吗?"))  
  38.         {  
  39.             return;  
  40.         }  
  41.     }  
  42.     iStep = iStep/1;  
  43.       
  44.     genSerialCode();  
  45. }  
  46.  
  47.  
  48. function genSerialCode()  
  49. {  
  50.     document.write('<form name="frmTest">');  
  51.     document.write('<TEXTAREA ROWS="30" COLS="90" name="taTest">');  
  52.     var j, iMaxLen = String(iEnd).length;  
  53.     for (i=iStart; i < iEnd+1; i+=iStep)  
  54.     {  
  55.         document.write(sFixed);  
  56.         var iLen = iMaxLen - String(i).length;  
  57.  
  58.         for (j = 0; j < iLen; j++)  
  59.         {  
  60.         //document.writeln("j="+j);  
  61.             document.write("0");  
  62.         }  
  63.  
  64.         document.writeln(i);  
  65.     }  
  66.  
  67.     document.write('<\/TEXTAREA><\/form>');  
  68.     var tempval=eval("document.frmTest.taTest");  
  69.     tempval.focus();  
  70.     tempval.select();  
  71.     therange=tempval.createTextRange();  
  72.     therange.execCommand("Copy");  
  73. }  
  74. </script>