- Home
- Producten
- Bedrijfsbehoeften
- Partners
- Referenties
- Kenniscentrum
- Support
- Over Perrit
- Handleidingen
- Nieuws
- Acties
Private Declare Function GetTickCount Lib "kernel32" () As Long
Dim oExcel As Object
Public Function GetTicks() As Long GetTicks = GetTickCount()End Function
Private Function GetValues(xRange As IXRangeEnum) As Variant() Dim nCols As Long Dim nRows As Long Dim objRange As Object ' QI voor IDispatch-interface Set objRange = xRange ' Haal niet-ondertekende long-waarden op en wijs deze toe aan ondertekende long-waarden ' Dit is niet altijd een goede werkwijze. U kunt deze hier wel gebruiken ' omdat het aantal rijen of kolommen niet groter kan zijn dan ' de maximumwaarde van een ondertekende long-waarde nCols = objRange.ColCount nRows = objRange.RowCount ' Haal de waarden op uit een matrix met varianten ReDim vVals((nRows * nCols) - 1) As Variant objRange.Next nRows * nCols, vVals(0), vbNull ' Retourneer de volgende matrix GetValues = vVals End Function
Public Function CustomTrend(ByVal KnownY As IXRangeEnum, ByVal KnownX As IXRangeEnum, _ ByVal NewX As IXRangeEnum, ByVal Idx As Variant) As Variant
Dim XVals() As Variant, YVals() As Variant Dim NewXVals() As Variant, NewYVals() As Variant
On Error GoTo ErrHandler 'Plaats de waarden van bereik in een matrix YVals = GetValues(KnownY) XVals = GetValues(KnownX) NewXVals = GetValues(NewX) 'Automatiseer Excel voor het verkrijgen van een matrix met nieuwe Y-waarden met de functie TREND NewYVals = oExcel.WorksheetFunction.Trend(YVals, XVals, NewXVals, True) 'Retourneer de gevraagde index (Idx) CustomTrend = NewYVals(Idx) Exit Function ErrHandler: CustomTrend = "#VALUE!" End Function
Private Sub Class_Initialize() Set oExcel = CreateObject("Excel.Application")End Sub
Private Sub Class_Terminate() oExcel.Quit Set oExcel = NothingEnd Sub
<HTML><HEAD>
<! --- BEGIN COMMENTAAR ---------------------------------><! --- De onderstaande codebase- en clsid-items wijzigen --------->
<OBJECT classid = clsid:FFB16550-E40D-11D3-BB97-00C04FAEB609 codebase="http://MyServer/OWCAddin.CAB" id=OWCAddin></OBJECT>
<! --- EINDE COMMENTAAR ----------------------------------->
</HEAD>
<BODY>
<OBJECT classid=clsid:0002E510-0000-0000-C000-000000000046 height="50%" id=Spreadsheet1 width="80%"></OBJECT>
<SCRIPT Language=VBScript>
Function Window_OnLoad() 'Verwijzen naar het COM-object zodat de functies ervan kunnen worden aangeroepen vanuit 'formules in cellen op het werkblad Spreadsheet1.AddIn OWCAddin.Object
'Vul het werkblad met gegevens With SpreadSheet1 .Range("A1:D1").Value = Array("Known X-Values", "Known Y-Values", _ "New X-Values", "New Y-Values") .Range("A2:A13").Value = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12) .Range("B2:B13").Value = Array (133890, 135000, 135790, 137300, _ 138130, 139100, 139900, 141120, _ 141890, 143230, 144000, 145290) .Range("C2:C5").Value = Array(13, 14, 15, 16) .Range("A1:D13").AutoFitColumns .Range("D2:D5").NumberFormat = "0.00" End WithEnd Function
</SCRIPT>
</BODY></HTML>
D2: =CustomTrend(B2:B13;A2:A13;C2:C5;1)D3: =CustomTrend(B2:B13;A2:A13;C2:C5;2)D4: =CustomTrend(B2:B13;A2:A13;C2:C5;3)D5: =CustomTrend(B2:B13;A2:A13;C2:C5;4)
D2: 146171.52D3: 147189.70D4: 148207.88D5: 149226.06
=GetTicks()
'Programming Microsoft Office 2000 Web Components'
van Dave Stearns - ISBN 0-7356-0794-X
Relevante artikelen |
Gekoppelde tagsActiveX, Cellen, DLL, Excel, Excel 2000, Fix, Kolommen, Office, Office 2000, Office 2003, Patch, Project, Visual Basic, Werkblad, Works |