I am trying to design an application in Visual Studio that will allow a user
to select a spreadsheet, pass in some parameters, and run macros in the
spreadsheet that depend on the parameters. I was able to do this pretty
easily with Access, but I want it to be a standalone app so I'm trying to do
it in VB.NET (I am a VS.NET newbie) So far my code seems to work fine, until
I try to execute the macros, at which point I get a "Type mismatch" error.
The macro in question takes two integer inputs, and both of the variables I
create in VB are integers, I cannot figure out why I am getting this error.
Here is the code up to the point I get an error:
Private Sub Button1_Click(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Button1.Click
Dim XL, FD, OfficeApp As Object
Dim TotalRows As Integer
Dim Prem, Inc, Exp, Profit, Profit5, Increase, TotalInc, LastIncrease As
Double
Dim Iterations, LastBatch, j, Done As Integer
Dim minutes As Double
Dim seconds As Double
Dim StartTime As Double, ElapsedTime As Double
Dim minutesgrammar As String
Dim EndTime As Double
Dim myFileName, vrtSelectedItem
Dim BatchSizeTxt As String
Dim BatchSize As Integer
Dim msoFileDialogFilePicker
Dim openFileDialog1 As New OpenFileDialog()
'User will input the number of policies to run per batch
BatchSizeTxt = InputBox("How many policies do you want to run per batch?")
If BatchSizeTxt = "" Then
'MsgBox ("You must enter a number.")
Exit Sub
Else
If Val(BatchSizeTxt) = 0 Then
MsgBox("You must enter a number greater than 0.")
Exit Sub
End If
End If
BatchSize = Int(BatchSizeTxt)
'Initialize the timer
Dim dtDateTime As DateTime = Now()
StartTime = dtDateTime.Ticks
'Get the file to run a projection with
With openFileDialog1
..FileName = ""
..ShowDialog()
myFileName = .FileName
End With
XL = CreateObject("Excel.Application")
XL.Workbooks.Open(myFileName)
If BatchSize > XL.Worksheets("All
data").Range("A1").CurrentRegion.Rows.Count - 1 Then
MsgBox("Your batch amount was greater than the total # of policies.")
Exit Sub
End If
TotalRows = XL.Worksheets("All data").Range("A1").CurrentRegion.Rows.Count -
1
Iterations = Int(TotalRows / BatchSize)
LastBatch = Int(TotalRows - Iterations * BatchSize)
XL.Run("Insert_Data", 0, BatchSize) 2 1673
Exel is using VBScript so an int is 16 bits. In .net an Integer is 32 bits.
Either make your excel macro take a long (32 bits in VBS like the 32 bit int
in .net) or make batchsize an int16
Change
Dim BatchSize As Integer
to
Dim BatchSize As Int16
"Aaron" <ab***********@hotmail.com> wrote in message
news:Ov**************@TK2MSFTNGP09.phx.gbl... I am trying to design an application in Visual Studio that will allow a
user to select a spreadsheet, pass in some parameters, and run macros in the spreadsheet that depend on the parameters. I was able to do this pretty easily with Access, but I want it to be a standalone app so I'm trying to
do it in VB.NET (I am a VS.NET newbie) So far my code seems to work fine,
until I try to execute the macros, at which point I get a "Type mismatch" error. The macro in question takes two integer inputs, and both of the variables
I create in VB are integers, I cannot figure out why I am getting this
error. Here is the code up to the point I get an error:
Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim XL, FD, OfficeApp As Object
Dim TotalRows As Integer
Dim Prem, Inc, Exp, Profit, Profit5, Increase, TotalInc, LastIncrease As Double
Dim Iterations, LastBatch, j, Done As Integer
Dim minutes As Double
Dim seconds As Double
Dim StartTime As Double, ElapsedTime As Double
Dim minutesgrammar As String
Dim EndTime As Double
Dim myFileName, vrtSelectedItem
Dim BatchSizeTxt As String
Dim BatchSize As Integer
Dim msoFileDialogFilePicker
Dim openFileDialog1 As New OpenFileDialog()
'User will input the number of policies to run per batch
BatchSizeTxt = InputBox("How many policies do you want to run per batch?")
If BatchSizeTxt = "" Then
'MsgBox ("You must enter a number.")
Exit Sub
Else
If Val(BatchSizeTxt) = 0 Then
MsgBox("You must enter a number greater than 0.")
Exit Sub
End If
End If
BatchSize = Int(BatchSizeTxt)
'Initialize the timer
Dim dtDateTime As DateTime = Now()
StartTime = dtDateTime.Ticks
'Get the file to run a projection with
With openFileDialog1
.FileName = ""
.ShowDialog()
myFileName = .FileName
End With XL = CreateObject("Excel.Application")
XL.Workbooks.Open(myFileName)
If BatchSize > XL.Worksheets("All data").Range("A1").CurrentRegion.Rows.Count - 1 Then
MsgBox("Your batch amount was greater than the total # of policies.")
Exit Sub
End If
TotalRows = XL.Worksheets("All
data").Range("A1").CurrentRegion.Rows.Count - 1
Iterations = Int(TotalRows / BatchSize)
LastBatch = Int(TotalRows - Iterations * BatchSize)
XL.Run("Insert_Data", 0, BatchSize)
Solved my problem!!
Thanks a lot!!!
"Adrian Forbes [ASP MVP]" <so***@noemail.zzz> wrote in message
news:uT**************@TK2MSFTNGP09.phx.gbl... Exel is using VBScript so an int is 16 bits. In .net an Integer is 32
bits. Either make your excel macro take a long (32 bits in VBS like the 32 bit
int in .net) or make batchsize an int16
Change
Dim BatchSize As Integer
to
Dim BatchSize As Int16 This thread has been closed and replies have been disabled. Please start a new discussion. Similar topics
by: cyranoVR |
last post by:
This is the approach I used to automate printing of Microsoft Access
reports to PDF format i.e. unattended and without annoying "Save As..."
dialogs, and - more importantly - without having to use...
|
by: John Marble |
last post by:
I have around 400 excel files filled with data that I need to import
in ACCESS. The tricky part is that they must be imported one at time,
and properly corrected before importing the next one. I...
|
by: Michael Wu |
last post by:
I wonder if anyone can shed some light on how to automate Excel from a C#
program.
What I like to do is this,
1) Find if an Excel spreadsheet is alreay opened (identify the Excel file
path)
2)...
|
by: David Lozzi |
last post by:
Hello,
I need to automate importation of a excel file into a table. Here's my
scenario: I'm writing an ASP.NET application where users can pull reports on
imported data. The imported data is...
|
by: Ivan |
last post by:
Hi All,
I have tried to automate excel in vb.net
and i found a problem that i can't find the solution in anywhere...
i hope someone can help me in this group....
the problem is i try using...
|
by: aniphilip |
last post by:
Hi All,
I have a requirement to automate Access functionality from Excel. I need to open Access, trigger button events and close Access from Excel.
I Achieved opening Access from Excel. I...
|
by: beary |
last post by:
I am using php5 with mysql and also using excel 2003 running on winxp.
Anyway, I am currently opening my excel.xls file, then saving as csv file, then closing, then copying it over to the web...
|
by: =?Utf-8?B?QWxleGFuZGVyIFd5a2Vs?= |
last post by:
Is it possible to automate a COM object ebmeded in an excel document run the
process and return the results in a C# .NET application? Or better yet
extract the com object some how and just run it...
|
by: ishay44 |
last post by:
Hello!
I try to build (using Visual 2005 and Excel 2007) the example described in the Microsoft Help and Support "How to automate Excel from MFC and Visual C++ 2005 or Visual C++ .NET to fill or...
|
by: =?Utf-8?B?SmVycnkgQw==?= |
last post by:
I have a web site that automates excel.
This site runs in server 2003. iis 6.0 office 2003 installed
I moved this app to server 2008 iis 7.0 office 2003 installed
Now when I try to automate...
|
by: taylorcarr |
last post by:
A Canon printer is a smart device known for being advanced, efficient, and reliable. It is designed for home, office, and hybrid workspace use and can also be used for a variety of purposes. However,...
|
by: ryjfgjl |
last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
|
by: BarryA |
last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
|
by: nemocccc |
last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
|
by: Sonnysonu |
last post by:
This is the data of csv file
1 2 3
1 2 3
1 2 3
1 2 3
2 3
2 3
3
the lengths should be different i have to store the data by column-wise with in the specific length.
suppose the i have to...
|
by: Hystou |
last post by:
There are some requirements for setting up RAID:
1. The motherboard and BIOS support RAID configuration.
2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
|
by: marktang |
last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
|
by: Hystou |
last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
|
by: Oralloy |
last post by:
Hello folks,
I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>".
The problem is that using the GNU compilers,...
| |