Hey Guys!
I have written a code (shown below). It is supposed to determine the dimension (in pixels) of .bmp files from an input folder and write these dimensions in an existing excel file alongside its filename.
The code seems to work fine when the number of .bmp files in the folder is small (around 20) but the ones i need to use have ard 260 files. In such cases after a while.. this error comes up.
This error is shown on the line:COMException was unhandled
Exception from HRESULT: 0x800A03EC
oSheet.Range(Destination).Value = (ReqdWidth)
Code:Imports System Imports System.IO Imports Microsoft.VisualBasic Public Class SelectFolders Private Sub SelectFolders_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim DirPath, TempFilePath As String Dim file_name() As String = {} Dim i As Long = 0 Dim x As Integer = 0 Dim ReqdWidth As Long Dim result, fullpath, tempaddress As String Dim dimension As Size Dim oExcel As New Object Dim oBook As Object Dim oSheet As Object Dim c Dim RowAddress As String Dim Destination As String If FolderBrowserDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then DirPath = FolderBrowserDialog1.SelectedPath End If 'MessageBox.Show("Select Template Excel File") MsgBox("Select Template Excel File") If OpenFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then TempFilePath = OpenFileDialog1.FileName End If oExcel = CreateObject("Excel.Application") oBook = oExcel.Workbooks.open(TempFilePath) With (oBook) oSheet = .Worksheets("Sheet1") End With oSheet = oBook.ActiveSheet Dim fld As New System.IO.DirectoryInfo(DirPath) Dim fil As System.IO.FileInfo ReDim file_name(fld.GetFiles("*.bmp").Length - 1) For Each fil In fld.GetFiles("*.bmp") result = fil.Name 'Returns the filename with ext (in FileInfo) fullpath = fil.FullName 'Returns full path to the file (in FileInfo) file_name(i) = Path.GetFileNameWithoutExtension(fullpath) dimension = GetBitmapSize1(fullpath) ReqdWidth = dimension.Width.ToString For Each c In oSheet.Range("A3:A501") If c.Value = (file_name(i)) Then tempaddress = c.address 'MessageBox.Show(tempaddress) 'Reverse Looping and Checking for "$" For x = Len(Trim(tempaddress)) To 1 Step -1 If Mid(tempaddress, x, 1) <> "$" Then RowAddress = Mid(tempaddress, x, 1) & RowAddress Else 'The first "$" found from Right 'Exit Loop Exit For End If Next x 'MessageBox.Show(RowAddress) End If Next (c) Destination = ("C" & RowAddress.ToString) 'MessageBox.Show(Destination) oSheet.Range(Destination).Value = (ReqdWidth) i = i + 1 RowAddress = "" Next oBook.SaveAs("C:\Book2.xls") oSheet = Nothing oBook = Nothing oExcel.visible = True oExcel.Quit() oExcel = Nothing MessageBox.Show("xls saved") End Sub Private Function GetBitmapSize1(ByVal Path As String) As Size If File.Exists(Path) Then Dim b As New Bitmap(Path) Dim s As New Size(b.Width, b.Height) b.Dispose() Return s Else Throw New FileNotFoundException() End If End Function End Class
Is there a problem with the data type and its limits?? This is very important..
Please Advise
cheers
Abhilash




Reply With Quote