Tag: vb.net

VBA – 使用.NET类库

我们有一个自定义的类库,它是从头开始构build的,它执行业务模型所需的各种function。 我们还使用VBA来自动化标准Microsoft软件包和SolidWorks的一些数据插入。 迄今为止,我们已经基本上重写了VBA应用程序macros中的代码,但是现在正在将类库包含到VBA引用中。 我们已经注册了COM interop的类库,并且确保它是COM可见的。 该文件是可引用的,我们在每个公共类上添加了<ClassInterface(ClassInterfaceType.AutoDual)> _标签,以便intellisense“有效”。 就这样说,现在出现了问题 – 当我们引用类库时,对于这个实例,我们称之为Test_Object ,它被拾取并且似乎工作得很好。 所以我们继续尝试一个小样本,以确保它使用公共函数并返回期望的值: Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim test As New Test_Object.Formatting Dim t As String t = test.extractNumber("abc12g3y45") Target.Value = t End Sub 这按预期工作,返回12345在选定的单元格中。 但是,当我尝试不同的类,按照完全相同的过程,我得到一个错误( Object variable or With block variable not set )。 代码如下: Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim test […]

将数组写入excel时出错

我一直使用这个相同的例程超过1.5年没有问题,然后突然今天我得到以下错误: 来自HRESULT的exception:0x800A03EC 我的代码读取一个excel范围到一个数组处理数组然后把数组放回Excel表。 它已经处理超过52000行,但今天在5000行失败! 我真的坚持这一点。 我的代码如下: Dim arrProcess As Array Dim intRowNum As Integer = xlWorksheet1.Cells.CurrentRegion.Rows.Count arrProcess = xlWorksheet1.Range("A2:AD" & intRowNum).Value 'do some processing 'Put array back to worksheet xlWorksheet1.Range("A2:AD" & intRowNum).Value = arrProcess 'empty array arrProcess = Nothing 即使我根本不处理这个数组,直接把它放回去,我也会得到一个错误。 干杯

数组处理自定义函数VB.net

我想转换一些Excel的VBA自定义function成为一个VB.net的COM插件,我可以处理大多数function,但它倒下时,其中一个input是范围,而不是一个单元格。 我添加了一个基本的function,当试图用一个外部范围询问Marray(i,0)时,该function下降 Function getAverage(ByVal arr As Object) As Double 'local variables Dim i As Integer Dim avg As Double Dim sum As Double = 0 Dim Marray As Array = CType(arr, excel.Range).Value2 For i = 1 To UBound(Marray) sum = sum + Marray(i, 0) Next i avg = sum / UBound(Marray) Return avg End Function […]

导出datagridview数据在VB.NET中的优秀

我需要将我的datagridview中的过滤数据导出为ex​​cel,任何想法我怎么能做到这一点? 我正在使用Microsoft Visual Studio 2013 Ultimate,我的MS Excel是Excel 2013,我也使用MySQL Workbench作为我的数据库 谢谢!

如何合并单元格并在其中放置一个值?

问题先生, 如何在Excel中合并单元格,并使用vb.net将值放入它。 示例我想将单元格A1合并到C1并在其中放置一个标题? 任何build议?

使用Range对象获取Excel单元格的值

我有一个Excel插件中的VB.Net函数,我需要在工作表中find第一次出现的string,然后返回单元格的整个值。 例如,如果单元格F4包含“苹果和桔子”,则Findit(“苹果”)应该find$ F $ 4的范围,并返回“苹果和橘子”。 在下面的代码中,我得到了正确的范围存储在MatchedRange,但我不知道如何使用它来获取该单元格的值。 我知道我需要使细胞活跃,但这正是我挣扎的地方。 Private Sub FixFormulasButton_OnClick(sender As Object, control As IRibbonControl, pressed As Boolean) Handles FixFormulasButton.OnClick Dim ws As Object = CType(ExcelApp.ActiveSheet, Excel.Worksheet) Dim cells As Object = ws.Cells Dim MatchRange As Object = CType(cells.Find("apples", LookAt:=Excel.XlLookAt.xlPart, Lookin:=Excel.XlFindLookIn.xlFormulas), Excel.Range) If MatchRange Is Nothing Then MessageBox.Show("found no apples", "do nothing", MessageBoxButtons.OK) Else MessageBox.Show(the […]

用VB.NET设置Excel.Application.ScreenUpdating的好devise模式?

在VBA中,我使用以下类设置了Application.ScreenUpdating和其他应用程序设置: Option Explicit Private Sub Class_Initialize() Application.Cursor = xlWait Application.ScreenUpdating = False ae = Chr(228) ao = Chr(229) oe = Chr(246) aeCap = Chr(196) aoCap = Chr(197) oeCap = Chr(214) End Sub Private Sub Class_Terminate() Application.Cursor = xlDefault Application.ScreenUpdating = True End Sub 我已经将它实现到我的代码的每个入口点: Sub GetFilePathButton() Dim runState As New cRunState Set runState = New […]

将Excel导出到Asp.net,平板电脑不会打开

在我的function,我有以下指示: grid.DataSource = dt grid.DataBind() Response.Clear() Response.AddHeader("content-disposition", "attachment; filename=Soste.xls") Response.AddHeader("Content-Type", "application/Excel") Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" Response.Charset = "" Dim stringWrite As System.IO.StringWriter = New System.IO.StringWriter Dim htmlWrite As New HtmlTextWriter(stringWrite) grid.RenderControl(htmlWrite) Dim html As String = stringWrite.ToString() Dim pattern As String = "(\p{Sc})?" Dim rgx As New System.Text.RegularExpressions.Regex(pattern) html = rgx.Replace(html, "") Response.Write(html) HttpContext.Current.Response.[End]() 网格是一个数据网格,我发布要导出的数据。 在个人电脑上它是好的,但是当我尝试导出数据到平板电脑(android或苹果),该文件无法打开。 […]

从datagridview中导出的excel文件在打开VB时显示错误

我在VB中做出口。 我能够将datagridview的值导出为ex​​cel,但是当我打开文件时,会显示此错误。 我正在使用下面的代码导出datagridview的值。 Dim xlApp As Microsoft.Office.Interop.Excel.Application Dim xlWorkBook As Microsoft.Office.Interop.Excel.Workbook Dim xlWorkSheet As Microsoft.Office.Interop.Excel.Worksheet Dim misValue As Object = System.Reflection.Missing.Value Dim sPath As String = String.Empty Dim dlgSave As New SaveFileDialog Dim i As Integer Dim j As Integer dlgSave.DefaultExt = "xls" dlgSave.Filter = "Microsoft Excel|*.xls" If dlgSave.ShowDialog = System.Windows.Forms.DialogResult.OK Then xlApp = New […]

在Excel vb.net中启用编辑(没有给出一个或多个必需参数的值)

我试图从我的服务器上下载一个文件,保存它,然后在dataviewgrid中打开它。 当我手动下载excel文件时,我必须打开它,“启用编辑”然后保存。 如果我这样做,我的代码正确打开excel文件到datagridview。 如果我尝试用代码自动下载文件,然后打开它,我得到一个错误:“没有给出一个或多个所需的参数值”。 但是,如果我打开相同的文件并启用编辑,然后重新保存它,相同的确切代码的作品。 这是我的代码: My.Computer.Network.DownloadFile("http://xxx.xx.xx.xxx/himapps/opalreports/myexcel.xls","H:\myexcel.xls") 'Download File/Save File Dim MyConnection As System.Data.OleDb.OleDbConnection Dim DtSet As System.Data.DataSet Dim MyCommand As System.Data.OleDb.OleDbDataAdapter MyConnection = New System.Data.OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=H:\myexcel.xls; Extended Properties=Excel 12.0;") MyCommand = New System.Data.OleDb.OleDbDataAdapter("select HP_Assignment, OPAL_Status, Quote, Request_Name as 'Access For', Description from [Sheet1$] where HP_Assignment = '" & User1 & "' or OPAL_Assignment = […]