Tag: vb.net

无法使用VBA中的string调用VB.NET COM DLL函数

我用一个简单的testing函数实现了一个VB.NET DLL: <ComVisible(True)> Function TestString ( <MarshalAs(UnmanagedType.BStr)> xyz As String) As <MarshalAs(UnmanagedType.BStr)> String Dim y As Integer TestString = "Hello" End Function 这个function很简单。 在VBA中,我适当地声明了这个函数: Public Declare Function TestString Lib "myDLL.dll" (xyz As String) As String 从VBA我也显然加载DLL。 然而问题是,当我运行这样的function: Dim st as String st = "Hello" Debug.Print TestString(ByVal st) 我收到一条消息说错误的DLL调用约定。 另一方面,当我删除<MarshalAs(UnmanagedType.BStr)>function工作,但打印"Hello"后不久崩溃。 我究竟做错了什么?

打开Excel文件使用ClosedXML错误

我正尝试在ASP.NET中使用ClosedXML打开一个6MB的Excel文件,但是我收到一个错误,提示“隐式转换错误,无法转换空对象”。 这是我的代码: Dim temppath = Path.GetTempPath() Dim filenamestr As String = Path.GetFileNameWithoutExtension(Path.GetRandomFileName()) Dim tempfilename As String = Path.Combine(temppath, filenamestr + ".xlsx") Using fs = New FileStream(tempfilename, FileMode.Create, FileAccess.Write) xlStream.WriteTo(fs) End Using Dim xlwb = New XLWorkbook(tempfilename) 'The part having the error 来源:“DocumentFormat.OpenXml”我也尝试打开现有的Excel文件,它仍然导致此错误。 还尝试把文件放在不同的目录中,认为这只是因为我的驱动器的许可,根本没有运气。 提前致谢。

从Excel访问VB.Netfunction

我想获得一个VB.Net DLL函数暴露为一个COM在Excel中工作。 在Excel中公开的访问.NET函数是非常有用的。 我能够成功注册dll和tlb文件。 我创build的类对象对Excel可见,但其成员不是。 我在Windows 7-64位与Office 2010-32位工作。 我编译了x86的dll。 这是代码 Namespace PRISMTest Public Class Test Public ReadOnly Property CheckExcelVersion As Integer Get Return 15 End Get End Class End Namespace 而我在Excel对象浏览器中看到的。 有任何想法吗?

vba的错误试图parsing一个空的变体,而不是一个string

在Excel里面,我正在循环一系列看起来像这样的jsonstring。 但有些时候,其中一个值会带有null而不是string。 所以我尝试做一些错误识别,但我没有得到正确的东西。 我想获得一个列表,其中第一个项目将是“工具培训”,并由于空失败types不匹配在第二,我想尝试除了这样的错误或错误。 Dim return_value As String On Error GoTo 22 return_value = jstring("fields")("customfield_18711")("value") 22: return_value = "empty" Resume Next 应该只使用简历? 与下一个? 或者我甚至不使用简历? 这是jsonstring的样子 { "expand": "operations,editmeta,changelog,transitions,renderedFields", "id": "452637", "self": "example.com/rest/api/2/issue/452637", "key": "MP-16098", "fields": { "summary": "my summary", "customfield_18711": { "self": "example.com/rest/api/2/customFieldOption/48120", "value": "Tool Training", "id": "48120" } } } { "expand": "operations,editmeta,changelog,transitions,renderedFields", "id": […]

使用CodeModule将代码插入到新的工作表中需要打开VB编辑器

我想能够将代码添加到新创build的工作表。 下面的代码块会这样做,但如果Visual Basic编辑器没有打开,会给我一个错误(指向下面的代码的第一行)。 而且,如果它在后台打开,它将在macros完成运行后激活VB编辑器窗口。 With wb.VBProject.VBComponents(wb.Worksheets(newSheetName).CodeName).CodeModule .InsertLines Line:=.CreateEventProc("FollowHyperlink", "Worksheet") + 1, _ String:=vbCrLf & _ "Call FindAllInSheet(Target.Range.Text, Range(Cells(2, 2),Cells(" & num_triple_combos + 1 & ", " & start_triples_col + 1 & ")))" End With 有没有办法避免这种行为?

转换Datatable中最后一行的DataType以导出到Excel

有没有什么办法可以打开最后一行的数据types当我想从数据表中导出excel? dataTable.Columns("ColumnA").DataType = System.Type.GetType("System.String") 看来只有Datatype可以被列使用…? 提前致谢!

VSTO:Excel在vb.net中调整范围

我试图从VBA切换到VSTO,但是当我尝试调整范围时遇到了一些我不熟悉的错误。 我有下面的代码应该最终能够分割一个单元格的行数x的范围。 我已经在VSTO中创build了一个插件。 当我通过按下Excel中的button来运行代码Visual Studo给了我一个“COMExeption是由用户代码未处理”,它highligts最后一行,我试图调整和输出范围。 我究竟做错了什么? Private Sub Button1_Click(sender As Object, e As RibbonControlEventArgs) Handles Button1.Click Dim sheet As Excel.Worksheet = Globals.ThisAddIn.Application.ActiveSheet Dim inputrange As Excel.Range 'Dim cell As Excel.Range Dim numberOfOutputRows As Long Dim numberOfOutPutColumns As Long Dim outputRange As Excel.Range Dim inputArray(0, 0) As Long Dim i As Long Dim iRow As Long […]

Oledb或ODBC创build没有安装Office的工作簿或工作表

我有一个2008R2服务器与SQL和IIS; 没有安装MS-Office套装,但是我需要根据用户请求发送dynamic创build的Excel回复。 安装“Microsoft Access数据库引擎2010可再发行组件”,根据规范,Excel驱动程序(等)应该到位。 试图用下面的连接string创build一个新的数据库: Using ExcelConnection As New System.Data.OleDb.OleDbConnection( "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + Name + ";" + "Mode=ReadWrite;" + "ReadOnly=false;" + "Extended Properties=Excel 12.0;") ExcelConnection.Open() …. end Using 错误 [OleDbException (0x80004005): Could not find installable ISAM.] System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection connection) +318 System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject) +88 System.Data.ProviderBase.DbConnectionFactory.CreateConnection(DbConnectionOptions […]

Excel Interop Chart隐藏图表区域文本

我使用下面的代码创build了以下图表对象(VB.Net和Microsoft Excel Interop) Dim ColumnChart As Microsoft.Office.Interop.Excel.Chart Dim ColumnChartShape As Microsoft.Office.Interop.Excel.Shape = oSheet.Shapes.AddChart() ColumnChart = ColumnChartShape.Chart CCLastRow = oSheet.Rows.End(Excel.XlDirection.xlDown) CCLR = oSheet.UsedRange.SpecialCells(Microsoft.Office.Interop.Excel.XlCellType.xlCellTypeLastCell).Row CCLC = oSheet.UsedRange.SpecialCells(Microsoft.Office.Interop.Excel.XlCellType.xlCellTypeLastCell).Column oSheet.Range("$C$3:" & GetExcelColumn(CCLC) & CCLastRow.Row).NumberFormat = "$#,##0_);($#,##0)" ColumnChartSourceRange = oSheet.Range("$B$3:" & GetExcelColumn(CCLC) & CCLastRow.Row) With ColumnChart .ChartWizard(Source:=ColumnChartSourceRange, Title:="Purchases – " + TextPeriod1Name + " vs " + TextPeriod2Name, PlotBy:=Microsoft.Office.Interop.Excel.XlRowCol.xlColumns) .ApplyLayout(9, […]

使用SSIS运行Excelmacros

我有一个运行一系列SSRS报告的SSIS包,并将它们作为.xlsx文件保存在一个文件夹中。 我也有一个Excel文件,通过保存每个.xlsx文件的macros,合并成一个文件,格式并保存在另一个文件夹。 现在这是一个两步的过程,所以我的目标是只做一步。 要做到这一点,我试图添加一个脚本任务到我的SSIS包的末尾打开我的Excel文件与macros并运行它。 我在网上寻找解决scheme,发现很多似乎为人们工作,但不为我工作。 具体来说,我正在使用这个网站的代码。 现在,当我填充代码时,将我的引用添加到Microsoft Excel 15.0 Object Library ,并将Imports Microsoft.Office.Interop添加到我的脚本的顶部,我得到一些代码错误。 请看下面的截图: 我得到的错误是: 使用No-PIA模式链接组件时,不允许引用类“ApplicationClass”。 我发现这个网站似乎有人有类似的问题,但它并没有帮助我与我的。 有什么我在脚本的地方做错了吗? 请参阅下面的脚本本身。 ' Microsoft SQL Server Integration Services Script Task ' Write scripts using Microsoft Visual Basic 2008. ' The ScriptMain is the entry point class of the script. Imports System Imports System.Data Imports System.Math Imports Microsoft.SqlServer.Dts.Runtime Imports […]