Tag: vb.net

如何在VB.NET中创build一个dynamic的Excel链接? (不是.dll)

VB.NET级别:初学者 我用VB.NET做了一个.exe。 在这个程序中有许多链接到Excel文件(有特定的文件夹的Excel文件)。 我的问题: 考虑一个名为abc.xlsx的excel文件,它位于我的家用电脑上。 链接到这个文件如下,D:\ work \ data \ abc.xlsx 现在显而易见的原因,当我在我的工作电脑上运行.exe时,这个链接将无效。 (后来我想在多台电脑上运行这个.exe) 如何解决这个问题? 我的想法是创build一个dynamic链接,它将根据使用的个人电脑更新自己或创build一个独立于使用的个人电脑的恒定链接。 帮助将非常感激。 提前致谢

在Excel中访问作为COM公开的.NET函数

在转换vba到vb6并创build一个.dll – 如何 – 提示,提示和风险 ,讨论了如何将VBA代码转换为VB.NET代码并在Excel中以COM的forms访问VB.NET中的函数。 在Excel中,函数必须通过VBA以这种方式访问​​: Public Function getParameterNumberOfMaterial() As Integer Dim myclass as New ExcelExample.ExcelVB getParameterNumberOfMaterial = myclass.getParameterNumberOfMaterial() End Function 这意味着每个暴露给用户的VBA函数,当转换到VB.NET时,我必须写上一个包装。 有没有办法直接使用这个函数而不用写VBA包装? 也就是说,在Excel中,用户可以直接使用getParameterNumberOfMaterial() ,就像原始的VBA函数一样,不需要我写一个VBA包装器。

将多个滚动条放在Excel电子表格的中间

我正在做一个COM插件,但我很乐意在VB或VBA中解决这个问题。 我有基于从数据库select生成的用户报告,然后将工作表添加到现有工作表中。 我被告知我需要保持相同的基本格式,并将其保留在Excel中。 问题是,表单中的这些列表可能比有空间的长度要长得多。 以下是当前表单的样子: 我的想法是把总数降到理论上的最大值(数据库中的选项总数加上50左右),然后使用滚动条进行中间滚动。 有没有办法有3个单独的滚动条,只滚动每个表(又有东西上面这些不会滚动)? 我只看到滚动条滚动整个工作表。 有更好的方法吗? 我想过试图使用索引函数,但我希望最终用户能够在滚动时编辑信息(在这种情况下索引将被写入)。 思考?

如何findexcel.exepath和notpad.exepath

在我的应用程序export excel or csv file然后在Excel或记事本中显示该文件。 在这种情况下,我使用 Excel中: Dim xExcelFilePath As String = System.Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles) + "\Microsoft Office" xDir = New DirectoryInfo(xExcelFilePath) For Each xDirectory As DirectoryInfo In xDir.GetDirectories ' it use for find any version of excel is installed or not If xDirectory.Name.Count < 6 Then Continue For If xDirectory.Name.Trim.Substring(0, 6).ToUpper = "OFFICE" Then If System.IO.File.Exists(xExcelFilePath […]

无法理解代码以从HTML导出Excel电子表格

我被要求修改用VB编写的ASP.NET WebForms应用程序(我通常使用C#)。 一个任务是尝试修复Excel下载。 客户报告说,当他试图在Excel中打开电子表格时,他得到了一个错误。 导出Excel下载的代码出现在专用ASPX页面的Load事件中。 看起来像这样: Dim mytable As New HtmlTable mytable = [Populate HTML Table Here] mytable = returnclass.displaytable mytable.Border = 1 mytable.BorderColor = "#CCCCCC" HttpContext.Current.Response.Clear() HttpContext.Current.Response.Buffer = True Response.Write("<html xmlns:x=""urn:schemas-microsoft-com:office:excel"">") Response.Write("<head>") Response.Write("<!–[if gte mso 9]><xml>") Response.Write("<x:ExcelWorkbook>") Response.Write("<x:ExcelWorksheets>") Response.Write("<x:ExcelWorksheet>") Response.Write("<x:Name>" & worksheetTitle & "</x:Name>") Response.Write("<x:WorksheetOptions>") Response.Write("<x:Print>") Response.Write("<x:ValidPrinterInfo/>") Response.Write("</x:Print>") Response.Write("</x:WorksheetOptions>") Response.Write("</x:ExcelWorksheet>") Response.Write("</x:ExcelWorksheets>") Response.Write("</x:ExcelWorkbook>") Response.Write("</xml>") Response.Write("<![endif]–> […]

如何制作基于1-index的数组

这是一个简单的问题 – 如何在VB.NET中创build索引从1开始的对象数组? 我需要这样一个对象来将范围写回Excel电子表格,并且只接受从1开始的索引。 当我从Excel中读取范围时,它会自动在VB.NET中创build一个基于1的对象,但是当我尝试创build另一个对象时,它不允许将lBound设置为1。

将数字转换为字母数字excel单元格引用

如何从数字转换为字母数字单元格引用? 例如,我有数字行,col(0,1),我想要转换为标准的MS Excel字母数字col,行(B,1)? 我很抱歉,但我不知道描述不同单元格引用的正确术语。 我想写数字单元格引用VB.NET代码,所以我的代码可以迭代,但转换为字母数字,所以我可以插入公式到我的电子表格。

在tabcontrol的多个选项卡中使用一个datagridview

我有TabControl1 TabPage1 datagridview(datagridview1)这是我的'logging'的forms。 目前,我使用在页面加载事件上执行的循环填充datagridview,并从Excel文件中加载数据,这是一个包含的资源。 在循环中,我也为每个工作表和Excel工作表名称创build了标签。 我目前在Excel文件中的两张表名是“2012”和“2013”​​。 TabControl中的第一个选项卡命名为“2013”​​,第二个选项卡dynamic创build并命名为“2012”,因为我通过将当前年份表设置为第一个选项卡并通过将2013表单中的数据读入datagridview来启动循环我的循环。 我需要帮助的是在每个新选项卡上使用相同的datagridview,但是将其更新为显示各年的(工作表)数据。 这是我的logging表单的代码 Imports System.Data.OleDb Imports Microsoft.Office.Interop.Excel Public Class Records Dim excel_app As Excel.Application Dim workbook As Excel.Workbook Dim sheet_name As String Dim sheet As Excel.Worksheet Dim ColumnCount, RowCount, TotalCellCount As Long Dim yearstamp As String = _ DateTime.Now.ToString("yyyy") Dim exeDir As New IO.FileInfo(Reflection.Assembly.GetExecutingAssembly.FullName) Dim xlPath = IO.Path.Combine(exeDir.DirectoryName, "Records.xlsx") […]

如何在vb.net中设置excel单元格格式

我正在修改用vb.net编写的现有应用程序。 有一个导出选项,可以将信息导出到excel表格。 在导出单元格之前,定义如下。 .Cells(cRow, 17).NumberFormat = "$#,##0.00_);($#,##0.00)" 这工作正常。 但是根据新的要求,货币符号是dynamic的。 因此,一旦我设置货币(例如:马来西亚钻石–MYR), .Cells(cRow, 17).NumberFormat = "MYR#,##0.00_);(MYR#,##0.00)" 这给出了一个错误“ 无法设置Range类的NumberFormat属性 ”。 可以有很多货币,我尝试使用一个variables设置货币。 Dim strCurrency As String = "" strCurrency = "SGD" .Cells(cRow, 17).NumberFormat = ""+strCurrency +"#,##0.00_);("+strCurrency +"#,##0.00)" 所有的都给我同样的错误。 有人请让我知道如何设置自定义货币符号。 谢谢

获取debugging模式下的工作表数 – MS Excel PIA

我无法访问Sheets .Count属性。 我正在使用Excel Interop。 我在debugging模式,我想这个: ?xlSheets.Count 这导致: (1):错误BC30456:“计数”不是“表格”的成员。 我不知道什么是错的,因为我在MSDN中看到有这样的属性 ! 这效果很好: ?xlSheets(1).Name 。 但Count失败…有可能得到床单的数量? 这些人有一个类似的问题 – 他们想.Worksheets.Add(.Worksheets.Sheets.Count) 。 最后他们没有得到计数 ,他们去了.Worksheets.Add(After:=.Worksheets(3)) … 更新: 令我非常高兴的是,经过进一步尝试/试验之后,很明显, 在debugging模式下, 只有在代码中没有这样的行时, Sheets.Count才能工作 。 在debugging此代码时,我可以访问Sheets.Count ,因为代码中存在此行。 Imports Excel = Microsoft.Office.Interop.Excel Public Class Form1 Dim xlApp As Excel.Application Dim xlWorkBook As Excel.Workbook Dim xlWorkbooks As Excel.Workbooks Dim xlSheets As Excel.Sheets Private Sub btnCreate_Click(ByVal […]