Ok I think I get your intent now. When you populate the blank parameter "Cap" no initial value is being set.

So to do this after the parameter receives the list to form the multivalue parameter, use Method 1/2 in the below. In short you are just setting the parameter equal to a value in the list.
Parameter.UpdateAfterChange = True
Dim List As New ArrayList
GoExcel.Open("C:\Users\aacheson\Desktop\WFH\Samples\VoltageTest.xlsx", "Sheet1")
Select Case Voltage
Case = 6.3
For rowNumber = 5 To 37
If Not GoExcel.CellValue("B" & rowNumber) = Nothing Then
List.Add(GoExcel.CellValue("A" & rowNumber) & "uF")
End If
MultiValue.List("Cap") = List
If Parameter("Cap") = GoExcel.CellValue("A" & rowNumber) & "uF" Then
Parameter("DiaLen") = GoExcel.CellValue("B" & rowNumber)
End If
Next
'Method 1 Set Default by index of parameter starting from 0
Dim oParam1 As UserParameter = ThisDoc.Document.componentdefinition.parameters.item("Cap")
oParam1.ExpressionList.SetExpressionList(oParam1.ExpressionList.GetExpressionList(), True, 3)'0,1,2,3
MessageBox.Show(oParam1.Value, "Title")
'Method 2 Set Default by Setting the parameter = a value
Parameter("Cap") = GoExcel.CellValue("A" & 8) & "uF"
MessageBox.Show(Parameter("Cap"), "Title")
End Select
This line will not work as it is designed to work when the list changes but it cannot be used at the beginning because there is no list to change. It is only being created. It cannot be used after each value is added because if you had a index of 8 and only 7 values added it will error out. So it must be placed after the list is complete.
MultiValue.SetValueOptions(True, DefaultIndex := 0)
Here is a reworked example and how to use the built in Index setting. There was too many operations happening in the original for loop to make it work.
Parameter.UpdateAfterChange = True
Dim List As New ArrayList
Dim FileName As String = "E:\Inventor\Electronic Parts\Capacitors\_Configs\Aluminum Electrolytic Capacitor.xlsx"
GoExcel.Open(FileName, "Sheet1")
Select Case Voltage
Case = 6.3
For rowNumber = 5 To 37
If Not GoExcel.CellValue("B" & rowNumber) = Nothing Then
List.Add(GoExcel.CellValue("A" & rowNumber) & "uF")
End If
Next
'Set List and Intitial value
MultiValue.SetValueOptions(True, DefaultIndex := 1)
Parameter("Cap") = "0uF" ' Add a value not in the list to ensure the list changes when initialized this will trigger the Set Value Options line to work
MultiValue.List("Cap") = List
'[Match The DiaLen Parameter To Cap Parameter
Dim CapExcel As String = Left(Parameter("Cap"), (Len(Parameter("Cap")) -2))'Because excel value is not matching parameter, we need to convert to excel value
'MessageBox.Show(CapExcel, "Parameter to CapExcel Conversion")
GoExcel.TitleRow = 1
i = GoExcel.FindRow(FileName, "Sheet1", "Cap", "=", CapExcel)
If i = -1 Then MessageBox.Show("No value found or blank cell found! Exiting", "iLogic Find Row Warning") : Return ' Ensure no blank cells Or find row will Return -1 Or Error message cannot find Object.
Parameter("DiaLen") = GoExcel.CurrentRowValue("DiaLen")
']
End Select
If this solved a problem, please click (accept) as solution.
Or if this helped you, please, click (like)
Regards
Alan