2,748
社区成员




LOCAL ASZ[50,7]
STORE [] TO ASZ
FOR lnI=1 TO 50
FOR lnI1=1 TO 7
ASZ[lnI,lnI1]=PADL(lnI*lnI1,4,[0])
ENDFOR
ENDFOR
Local ASZ[50,7]
Store [] To ASZ
For lnI=1 To 50
For lnI1=1 To 7
ASZ[lnI,lnI1]=Padl(lnI*lnI1,4,[0])
Endfor
Endfor
Local cc, oo As Excel.Application
m.oo = Newobject('Excel.Application')
If m.oo.Workbooks.Count < 1
m.oo.Workbooks.Add()
Endif
If m.oo.Workbooks(1).Sheets.Count < 1
m.oo.Sheets.Add()
Endif
TEXT to m.cc noshow
Sub ArrayFill(vfparray)
Range("b2").Resize(UBound(vfparray,1), UBound(vfparray,2)).Value = vfparray
End Sub
ENDTEXT
* 执行下面这行需要勾选 Excel 的信任选项: 工具->宏->安全性->可靠发行商->信任对"VB项目"的访问
m.oo.ActiveWorkbook.VBProject.VBComponents.Add(1).CodeModule.AddFromString(m.cc)
m.oo.Run('ArrayFill', @asz)
m.oo.Visible = .T.
这会要求用户按上面代码中注释的那样先打开这个安全开关,多少有些不友好,用户通常为了防范宏病毒都是关闭它的Local ASZ[50,7]
Store [] To ASZ
For lnI=1 To 50
For lnI1=1 To 7
ASZ[lnI,lnI1]=Padl(lnI*lnI1,4,[0])
Endfor
Endfor
Local cFlds, cTemp, ii
Local oo As Excel.Application
m.cFlds = ''
For m.ii = 1 To Alen(m.asz, 1)
m.cFlds = m.cFlds + Textmerge(',f<<m.ii>> V(10)')
Endfor
m.cFlds = Substr(m.cFlds, 2)
m.cTemp = Sys(2015)
Create Cursor (m.cTemp) (&cFlds)
Append From Array m.asz
Locate
_vfp.DataToClip(m.cTemp, 0xffff, 3)
Use In Select(m.cTemp)
m.oo = Newobject('Excel.Application')
If m.oo.Workbooks.Count < 1
m.oo.Workbooks.Add()
Endif
If m.oo.Workbooks(1).Sheets.Count < 1
m.oo.Sheets.Add()
Endif
m.oo.Range("b2:h52").Select
m.oo.Workbooks(1).Sheets(1).Paste
m.oo.Range("b3:h52").Select
m.oo.Selection.Cut
m.oo.Range("b2:h51").Select
m.oo.Workbooks(1).Sheets(1).Paste
m.oo.Visible = .T.
m.oo = Null