@wengjl 谢谢!问题已解决。										
					
	
	
	
	      
				
											一张纸打印二位老师的课表,节省了一半的纸张,环保。通过探索,多学了一点知识或者方法。从这些角度看是值的。换其他角度看并不一定值……哈……哈……哈……
										
					
	
	
	
			
程序代码:  SET TALK OFF
  SET SAFETY OFF
  CLOSE TABLES ALL
  CLEAR
  wjm=SYS(5)+SYS(2003)+"\grkbmb1.doc"
  WordApp=CREATEOBJECT("word.application")
  USE jsmd20180912 ALIAS jsmd20180912 IN 0
  USE jsrkb20190101 ALIAS jsrkb20190101 IN 0
  USE kb20190101 ALIAS kb20190101 IN 0
  SELECT jsmd20180912
  GOTO top
  rkmc=""
  Do While !Eof('jsmd20180912')
      xm=ALLTRIM(姓名)
*      rkmc[color=#808080]=xm+","[/color]
      kbxh=IIF(MOD(RECNO(),2)=0,2,1)
       IF kbxh=1    
      WordTable=WordApp.Application.Documents.Open(wjm)
      WordApp.Visible =.t.
      outfnm=xm
      ELSE
          outfnm=outfnm+'、'+xm
     ENDIF
     
      SELECT jsrkb20190101
      krecc=RECCOUNT()
      FOR k=1 TO krecc
         SELECT jsrkb20190101
         GO k
          FOR i=1 TO fcount() 
              m=FIELD(i)
              xm2= &m.
              IF ALLTRIM(xm2)=ALLTRIM(xm) THEN  &&IF ALLTRIM(xm2)=ALLTRIM(xm) 用完全匹配保险
*                 rkmc[color=#808080]=rkmc+FIELD(i)+nj+bj+','[/color]
*                 zk( m,nj,bj)
                 zk( m,nj,bj,kbxh)
               SELECT jsrkb20190101  &&保险起见,加这一句。调用过程与函数后,返回当前工作区。
              ENDIF
         NEXT i
      ENDFOR
       =WORDAPP.Selection.homekey(6)
      WORDAPP.ActiveDocument.Content.Find.Execute('ABCDEF',.F.,.F.,.F.,.F.,.F.,.T.,.F.,.F.,'&xm',1) 
      SELECT jsmd20180912
      skip
     IF kbxh=2 OR EOF('jsmd20180912')
      oFile=SYS(5)+SYS(2003)+"\"+ALLTRIM(outfnm)+"_课程表.doc"
      WordApp.Documents(1).SaveAs(oFile)
      WordApp.ActiveDocument.Close       
     endif
  ENDDO
  WORDAPP.quit
  WORDAPP=.NULL.
 CLOSE ALL
 QUIT
   
  PROCEDURE zk
*      LPARAMETERS kcm,lnj,lbj
      LPARAMETERS kcm,lnj,lbj,xh
      LOCAL j,zkm,xq,jc,zkkm
      wknb=SELECT(0)
      SELECT kb20190101
      GOTO top
      LOCATE FOR ALLTRIM(nj)==ALLTRIM(lnj) AND ALLTRIM(bj)==ALLTRIM(lbj)  
              &&如果不需要用==,可以用 LOCATE FOR nj=ALLTRIM(lnj) AND bj=ALLTRIM(lbj) 效率高一点点,但不建议这样
      IF FOUND() 
         FOR j=3 TO FCOUNT()
             zkm=FIELD(j)
             zkkm= &zkm.
             IF ALLTRIM(zkkm)=ALLTRIM(kcm) then
                xq=VAL(SUBSTR(zkm,5,1))
                jc=VAL(SUBSTR(zkm,6,1))
                scsz=ALLTRIM(nj)+ALLTRIM(bj)+ALLTRIM(kcm)
                WordTable.Tables(xh).Cell(jc+1,xq+2).Range.Text=scsz
             ENDIF
         NEXT j
      ENDIF
 **     SELECT kb20190101  本身没错但调用后的工作区变了。
         SELECT (wknb)
      RETURN										
					
	