以下是引用吕?布在2010-2-8 17:00:00的发言: Option Explicit
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDst As Any, pSrc As Any, ByVal ByteLen As Long) Sub 数组一维转多维() Dim arrsrc(1 To 100000), arrdest(1 To 5000, 1 To 20), i As Long For i = 1 To 100000 arrsrc(i) = i Next CopyMemory ByVal VarPtr(arrdest(1, 1)), ByVal VarPtr(arrsrc(1)), 16 * UBound(arrsrc) [a1].Resize(5000, 20) = arrdest MsgBox "ok" Stop End Sub
我对照着《excel vba技巧引用》的第13例 --- EXCEL文件打开时播放音乐,和3楼示例,比较: 1、与常见的调用带参数函数相比,引用api函数,不同的只是:声明api函数时,要多加(2处)黄色部分;调用时,没区别。 2、红字修改后出错;蓝字修改后,仍正常。红字和蓝字是系统(api函数自己)定义的名字;还是吕布起的名字呀?可不可这样分,函数分为以下3类: - 用户自己编写的函数。
- EXCEl自带的。
- api函数。
3、每个api函数都是一个完整的函数(或函数集,即一个api函数里有包含有很多api函数),只是因为它们不包含于excel中,所以调用时,需要‘特别’声明?也正是因为api函数不在excel中,所以它有可能实现VBA无法达到的功能?也就说,当你希望excel可以‘不务正业’时,就很需要了解api函数了。 是这样吗?
[此贴子已经被作者于2010-2-8 20:21:37编辑过] |