以下是引用sdta在2021-7-7 19:54:38的发言:
试试这样行不行(我的电脑上可以)
IF EVALUATE("fangan" + iic)=.T.
    ........
ENDIF
这个错误的诡异之处在于,同样的写法,上面 if 这行会出错,下面同样的写法 for 没有出错
        For i_zdxx=1 To 5
            izdc=Allt(Str(i_zdxx))
            Sele yinglijilu
  && 盈利记录
            Go Top
            Do While Eof()=.F. And i_zdsl<=10
                Sele yinglijilu
                If Iif(i_zdxx=1,fangan1=.T.,Iif(i_zdxx=2,fangan2=.T.,Iif(i_zdxx=3,fangan3=.T.,Iif(i_zdxx=4,fangan4=.T.,fangan5=.T.))))&& 这里如果用 if fangan&izdc=.T.就出错
                    i_zdsl=i_zdsl+1
                Endi
                Skip
            Enddo
            Sum zzc&izdc To sum_zzc
   For fangan&izdc=.T.
  && 这里同样用了这个fangan&izdc=.T.宏代换,却不会出错
            Sum zsr&izdc To sum_zsr
   For fangan&izdc=.T.
  && 这里同样用了这个fangan&izdc=.T.宏代换,却不会出错