我赞同@ y4cine的建议。但是我的猜测是你的文档没有正确打开,或者你的点数组的填充格式不正确。以下改编 SDK示例 适合我:
Sub TestSplineFromExcel() Dim vApp As Visio.Application Set vApp = CreateObject("Visio.Application") Dim intCounter As Integer Dim XYPoints(1 To (5 * 2)) As Double For intCounter = 1 To 5 'Set x components (array elements 1,3,5,7,9) to 1,2,3,4,5 XYPoints((intCounter * 2) - 1) = intCounter 'Set y components (array elements 2,4,6,8,10) to f(i) XYPoints(intCounter * 2) = (intCounter * intCounter) - (7 * intCounter) + 15 Next intCounter vApp.Documents.Add "" Dim vPag As Visio.Page Set vPag = vApp.ActivePage If vPag Is Nothing Then MsgBox "Target page is null" Else Dim shp As Visio.Shape Set shp = vPag.DrawSpline(XYPoints, 0.25, Visio.VisDrawSplineFlags.visSplinePeriodic) End If End Sub