View Single Post
  #3   Report Post  
Posted to microsoft.public.excel.programming
sebastienm sebastienm is offline
external usenet poster
 
Posts: 694
Default Need to make things simpler

Hi,
The returned value when allowing multi-select is an array of variant,
therefore try something like:

....
FName = Application.GetOpenFilename("CSV Files,*.csv", MultiSelect:=True)

If TypeName(FName) = "Boolean" Then
MsgBox "Cancelled by user."
Else
Dim v As Variant, s As String
For Each v In FName
'remove path
s = Right(v, Len(v) - InStrRev(v, Application.PathSeparator))
'get 3 first digit
s = Left(s, 3)
'Display
MsgBox s & " -- " & v
Next
End If
End Sub

--
Regards,
Sébastien
<http://www.ondemandanalysis.com


"hshayh0rn" wrote:

I have a workbook that I run the following code in:

Dim FName As Variant
Dim BankNum As Integer
Dim i As Long
Dim aryWBs
ChDrive ActiveWorkbook.Path
ChDir ActiveWorkbook.Path
FName = Application.GetOpenFilename("CSV Files,*.csv", MultiSelect:=True)
ReDim aryWBs(LBound(FName) To UBound(FName))
For i = LBound(FName) To UBound(FName)
Set aryWBs(i) = Workbooks.Open(FName(i))


Application.ScreenUpdating = False
Next


I then display an input box that asks the user for a 3 digit number that
corresponds to the files they just opened. I would like to eliminate the need
for the input box but pulling the first three characters from any one of the
files that were just opened. All of the file they user will open will be
preceeded by a 3 digit number and that 3 digit number is the number I have
been asking them to input. I tried to do something like:

Dim BankNum as Integer
BankNum = Left(FName, 3)

or

Dim BankNum as String
BankNum = Left(FName, 3)

BUT neiher seemed to work down the road. Can anyone help?