Tag: vb.net

Excelmacros输出

以下代码生成Excelmacros输出中从零开始的数字顺序列表。 我的问题是:如何告诉代码不要显示零以下的任何项目? SolidRight (PageSheet.Cells(3, 1)) For t = 1 To Columns_per_page PageSheet.Cells(3, (t * 2)).Value = ((NewPageNum – 1) * Columns_per_page) + t – 9 If t Mod 2 = 0 Then SolidRight (PageSheet.Cells(3, (t * 2) + 4)) ' 1)) DM Else DotRight (PageSheet.Cells(3, (t * 2) + 4)) ' 1)) DM End If […]

使用excel范围查找返回types不匹配。 (从HRESULTexception:0x80020005(DISP_E_TYPEMISMATCH))

我正在使用Excel插件,我需要在列(由用户select)中search单元格(由用户select)上的值并将结果写入单元格(由用户select) 例如:如果单元格A2存在于行5,10,15中的列B中,则C2必须是5,10,15 我尝试使用此代码查找行时,面对错误 result = sheetName.Cells.Find(cellVal, SearchRange, Excel.XlFindLookIn.xlValues, Excel.XlLookAt.xlWhole, _ Excel.XlSearchOrder.xlByRows, Excel.XlSearchDirection.xlNext, _ Type.Missing, Type.Missing, Type.Missing).Row.ToString 和这个代码也一样 result = sheetName.Cells.Find(What:=cellVal, LookIn:=SearchRange.Value, SearchOrder:=SearchRange.Rows, _ SearchDirection:=Excel.XlSearchDirection.xlNext, MatchCase:=False, SearchFormat:=False).ToString 我的完整代码在这里 Dim xlapp As Excel.Application = Globals.ThisAddIn.Application Dim sheetName As Excel.Worksheet sheetName = Globals.ThisAddIn.Application.ActiveSheet Dim LastDataRow As Integer = sheetName.Range(cmbCheckDataCol.Text & sheetName.Rows.Count).End(Excel.XlDirection.xlUp).Row Dim LastCheckInRow As Integer = sheetName.Range(cmbCheckRngCol.Text & […]

从Word中复制表格,然后使用VB.NET粘贴到Excel

我从Word复制表格,然后粘贴复制的表格在Excel文件中: tbl.Range.Copy() oSheet.Activate() rng = oSheet.Range("A1") rng.Activate() rng.PasteSpecial(Excel.XlPasteType.xlPasteAll) 但是当我这样做的时候,桌子被贴上了一张照片。

Excel的带内图库(如单元格样式)

我在VS 2010中使用VB.NET创build了excelfunction区。请告诉我,是否可以添加带内图库控件(如单元格样式库,您可以在这里看到控件的图片)? 也许我应该使用XML呢? 在你的论坛中,我发现这个问题只适用于Outlook。 对于excel有用吗? 谢谢!

如果没有首先打开Excel,system.diagnostics.process将不会打开Excel文件

我有一个VB.Net应用程序,我有一个通用的方法来打开使用system.diagnostics.process在本地驱动器上存在的文件。 Public Shared Function OpenFileWithProcess(ByVal lsFileNameWithPath As String, Optional ByVal lPrintOption As PrintOutputOption = PrintOutputOption.Preview) Try Select Case lPrintOption Case PrintOutputOption.Preview Dim P As System.Diagnostics.Process P = Process.Start(lsFileNameWithPath) If Not P Is Nothing Then Dim handle As IntPtr = P.Handle SetForegroundWindow(handle) End If Case PrintOutputOption.Print Dim Proc As New Process Proc.StartInfo.FileName = lsFileNameWithPath Proc.StartInfo.UseShellExecute = […]

VB.net循环保存多个Excel文件

我正在使用以下代码将值写入数据表,然后将其导出到Excel。 我现在想要实现的是修改代码,以便为每个唯一客户保存一个单独的Excel文件([Customer Lookup]) 这是我的出口代码: Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 'Initialize the objects before use Dim dataAdapter As New SqlClient.SqlDataAdapter() Dim dataSet As New DataSet Dim command As New SqlClient.SqlCommand Dim datatableMain As New System.Data.DataTable() Dim connection As New SqlClient.SqlConnection 'Assign your connection string to connection object connection.ConnectionString = "server=inlt01\SQLEXPRESS; " […]

检索没有名称空间的Office.customeXMLparts

我正在尝试使用它的CustomXMLParts组件在Excel文件中存储一些数据。 我也很辛苦 我有以下代码: Public Shared Sub AddSettingsXMLToDocument() Dim xmlPart As XElement = <SoftwareName xmlns="myNamespace"> <Settings> <FormVersion></FormVersion> <FormPassword>"Password"</FormPassword> <DatabaseRequiresAdminMode></DatabaseRequiresAdminMode> </Settings> </SoftwareName> Dim aWorkbook As Excel.Workbook = Globals.ThisAddIn.Application.ActiveWorkbook aWorkbook.CustomXMLParts.Add(xmlPart.ToString(), System.Type.Missing) End Sub Public Shared Function GetSettingsXMLFromDocument() As String Dim aWorkbook As Excel.Workbook = Globals.ThisAddIn.Application.ActiveWorkbook 'GET THE ENTIRE THING Dim retrievedXMLParts As Office.CustomXMLParts = aWorkbook.CustomXMLParts.SelectByNamespace("myNamespace") Dim customXMLPart As […]

部署一个DLL(COM对象)到Excel VBA参考

我开发了(VB.Net)VS2010中的一个DLL在Excel中使用(Windows 7 64位与32位Office 2010) 类库具有“使程序集COM可见”和“注册COM互操作”选中。 目标CPU使用.Net 4.0 Framework设置为x86。 当我在开发计算机上构build这个DLL时,可以在Excel vba中selectDLL作为参考,Excel将正确执行DLL。 当我试图将DLL部署到其他Window 7机器时,问题出现了。 我已成功(?)使用以下命令行注册DLL(作为pipe理员) C:\Windows\Microsoft.NET\Framework\v4.0.30319\regasm.exe "C:\Program Files\CompanyName\XXX_DLL.dll" 但是DLL不会出现在Excel vba中作为参考select。 我在哪里犯了一个错误/我在做什么错了? 非常感谢。

用每个单元格的variables填充一个datagridview行

目前我能够导入我的Excel表格到DataGridView中。 但是,当我尝试基于不同的variables为该行的每一列添加一个全新的行,它不喜欢它。 我曾经希望使用 DataGridView1.Rows.Add(New String() {txt_id.Text, txt_name.Text, txt_modelnumber}) 但是,我收到一个错误,说:“附加信息:当控件是数据绑定时,不能以编程方式将行添加到DataGridView的行集合中。 我如何使它不是数据绑定? 还是有另一种方式来填充细胞? 我的import代码: 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.Jet.OLEDB.4.0;Data Source='C:\Users\Lenovo\Downloads\Test\exported.xls';Extended Properties=Excel 8.0;") MyCommand = New System.Data.OleDb.OleDbDataAdapter("select * from [Products$]", MyConnection) MyCommand.TableMappings.Add("Table", "Net-informations.com") DtSet = New System.Data.DataSet MyCommand.Fill(DtSet) DataGridView1.DataSource = DtSet.Tables(0) MyConnection.Close()

XML Spreadsheet复制到vb.net中的剪贴板并带有特殊字符

我可以使用以下代码将一些Excel数据(XML Spreadsheet格式)粘贴到剪贴板: Dim textToPaste as String = GetMyXMLFormattedText() Dim dataobj As New DataObject Dim xmlStream as new IO.MemoryStream() xmlStream.Write(System.Text.ASCIIEncoding.ASCII.GetBytes(textToPaste), 0, textToPaste.Length) dataObj.SetData("XML Spreadsheet", xmlStream) Clipboard.SetDataObject(dataObj) textToPaste是类似的东西 <?xml version="1.0"?> <?mso-application progid="Excel.Sheet"?> <Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" … </Worksheet> </Workbook> 这个例子可行,但如果我在我的文档中有“é”这样的特殊字符,我会得到一些“?”。 我试图用其他格式来写我的stream System.Text.UTF32Encoding.UTF32.GetBytes 和许多其他可用,或使用TextToPaste GetByteCount技术,但当我尝试粘贴到Excel,我总是得到一个错误告诉我,我不能粘贴这些数据。 是否可以使用XML电子表格格式粘贴除ASCII之外的其他内容? 谢谢