I've been trying to create a VB.NET VTSO addin, where excel columns are rearranged depending on the column header value.
I found (online) VBA code that does exactly that, but Visual Basic does not recognise the "Dim v = ..." line.
Does anyone know how I can remedy this.
Dim v As Object, x As Object, findfield As Object
Dim oCell As Excel.Range
Dim iNum As Long
Dim v = Array("First Name", "Middle Name", "Last Name", "Date of Birth", "Phone Number", "Address", "City", "State", "Postal (ZIP) Code", "Country")
For x = LBound(v) To UBound(v)
findfield = v(x)
iNum = iNum + 1
oCell = ActiveSheet.Rows(1).Find(What:=findfield, LookIn:=Excel.XlFindLookIn.xlValues, LookAt:=Excel.XlLookAt.xlWhole, SearchOrder:=Excel.XlSearchOrder.xlByRows, SearchDirection:=Excel.XlSearchDirection.xlNext, MatchCase:=False, SearchFormat:=False)
If Not oCell.Column = iNum Then
ThisApplication.ThisWorkbook.Columns(oCell.Column).Cut
ThisApplication.ThisWorkbook.Columns(iNum).Insert(Shift:=Excel.XlInsertShiftDirection.xlShiftToRight)
End If
Next x
Tim nailed it on the head with his comment on the fix.
Dim v As String() = New String(9) {"First Name", "Middle Name", "Last Name", "Date of Birth", "Phone Number", "Address", "City", "State", "Postal (ZIP) Code", "Country"}
The Array Class is an Abstract Class, meaning you can't initialize it directly, but rather must do so through one of its children (another Class that inherits from it). In .Net you must specify the underlying Type of an Array (Object counts too), typically by adding parenthesis after the Type in the variable declaration.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.