Tag: excel vba

在具有多列的列表框中添加项目

我怎样才能添加2 columns ? 如果我使用ListBox.AddItem它会添加第一列中的项目。 我也想在2nd column添加项目。 谢谢!

在VBA中parsingHTML内容

我有一个关于HTMLparsing的问题。 我有一个网站的一些产品,我想抓到页面内的文字到我目前的电子表格。 这个电子表格相当大,但在第三列中包含ItemNbr,我期望第14列中的文本和一行对应于一个产品(项目)。 我的想法是在标签后面的Innertext里面获取网页上的“材质”。 身份证号码从一个页面更改为页面(有时)。 这里是网站的结构: <div style="position:relative;"> <div></div> <table id="list-table" width="100%" tabindex="1" cellspacing="0" cellpadding="0" border="0" role="grid" aria-multiselectable="false" aria-labelledby="gbox_list-table" class="ui-jqgrid-btable" style="width: 930px;"> <tbody> <tr class="jqgfirstrow" role="row" style="height:auto"> <td …</td> <td …</td> </tr> <tr role="row" id="1" tabindex="-1" class="ui-widget-content jqgrow ui-row-ltr"> <td …</td> <td …</td> </tr> <tr role="row" id="2" tabindex="-1" class="ui-widget-content jqgrow ui-row-ltr"> <td …</td> <td …</td> […]

Excel VBAvariables何时应该被杀死或设置为Nothing?

在过去的两年中,我一直在教自己的Excel VBA,我有这样的想法,有时在代码段的末尾处理variables是合适的。 例如,我已经在Ron de Bruin的将Excel转换为HTML的代码中使用了这一点: Function SaveContentToHTML (Rng as Range) Dim FileForHTMLStorage As Object Dim TextStreamOfHTML As Object Dim TemporaryFileLocation As String Dim TemporaryWorkbook As Workbook … TemporaryWorkbook.Close savechanges:=False Kill TemporaryFileLocation Set TextStreamOfHTML = Nothing Set FileForHTMLStorage = Nothing Set TemporaryWorkbook = Nothing End Function 我已经做了一些这方面的search,没有发现如何做到这一点,并在一个论坛发表声明,没有局部variables需要清除 ,因为他们在End Sub不存在。 我猜,根据上面的代码,这可能不是真正的End Function ,或在其他情况下,我没有遇到。 所以我的问题归结为: 网上有什么地方解释了variables清理的时间和原因,我只是没有find它? 如果没有人可以在这里请解释… 什么时候variables清理Excel […]

从第1行开始,select列F中的第一个空单元格(不使用偏移量)

这是一个我很困惑的查询。 因为我已经找了这么多次,但我总是find相关的代码find最后使用或第一个非空的单元格。 试着在下面的代码。 diff代码已被单词“even”分开 iRow = Worksheets("Sheet1").Cells(Rows.Count,1).End(XlUp).Row 甚至 Sub LastCellBeforeBlankInColumn() Range("A1").End(xldown).Select End Sub 甚至 在列中查找最后使用的单元格: Sub LastCellInColumn() Range("A65536").End(xlup).Select End Sub 甚至 在一行的空白处find最后一个单元格: Sub LastCellBeforeBlankInRow() Range("A1").End(xlToRight).Select End Sub 甚至 查找行中最后使用的单元格: Sub LastCellInRow() Range("IV1").End(xlToLeft).Select End Sub 甚至 Worksheets("Sheet1").Range("A1").End(xlDown).Row + 1 甚至 LastRow = Range("A" & Rows.Count).End(xlUp).Row + 1 Sheets("SheetName").Range("A" & LastRow).Paste 甚至 Dim FirstBlankCell as Range Set […]

将范围从A1返回到最后一个使用的单元格

我想select电子表格中的所有行和列。 macros需要是dynamic的,因为每次macros被调用时,列和行的数量都会变化。 它还需要能够考虑空白的行和列。 这个子程序完成了部分过程: Sub FindLastCell() Cells.Find(What:="*", After:=[A1], SearchDirection:=xlPrevious).Select End Sub 它find并select电子表格中最后一个单元格。 现在我已经find了电子表格中最后一个单元格,如何select单元格A1作为范围的LastCell?

使用VB将excel工作表保存为CSV文件名+工作表名称

我很新的VB编码,我试图保存多个Excel文件工作表到CSV,我不知道这样做多张,但我find了一种方法来做单个文件。 我发现在这个网站上的代码是非常有用的,我想要做的,只有问题是文件与工作表名称保存,但我想保存与原始文件和工作表名称,如filename_worksheet name ,我试图自己做这件事,但不断发生错误,请问我是否做错了? 我正在使用的代码如下所示: Public Sub SaveWorksheetsAsCsv() Dim WS As Excel.Worksheet Dim SaveToDirectory As String Dim CurrentWorkbook As String Dim CurrentFormat As Long CurrentWorkbook = ThisWorkbook.FullName CurrentFormat = ThisWorkbook.FileFormat ' Store current details for the workbook SaveToDirectory = "H:\test\" For Each WS In ThisWorkbook.Worksheets WS.SaveAs SaveToDirectory & WS.Name, xlCSV Next Application.DisplayAlerts = False ThisWorkbook.SaveAs […]

使用VBA检查文件是否存在

Sub test() thesentence = InputBox("Type the filename with full extension", "Raw Data File") Range("A1").Value = thesentence If Dir("thesentence") <> "" Then MsgBox "File exists." Else MsgBox "File doesn't exist." End If End Sub 在这个时候,我从input框中拾取文本值,它不起作用。 但是,如果从If Dir()除去"the sentence" ,并将其replace为代码中的实际名称,则可以使用。 有人可以帮忙吗?

在Excel-VBA中访问SQL数据库

我正在从MSDN复制一个VBA代码片段,演示如何从一个SQL查询抓取结果到Excel工作表(Excel 2007)中: Sub GetDataFromADO() 'Declare variables' Set objMyConn = New ADODB.Connection Set objMyCmd = New ADODB.Command Set objMyRecordset = New ADODB.Recordset 'Open Connection' objMyConn.ConnectionString = "Provider=SQLOLEDB;Data Source=localhost;User ID=abc;Password=abc;" objMyConn.Open 'Set and Excecute SQL Command' Set objMyCmd.ActiveConnection = objMyConn objMyCmd.CommandText = "select * from myTable" objMyCmd.CommandType = adCmdText objMyCmd.Execute 'Open Recordset' Set objMyRecordset.ActiveConnection = objMyConn objMyRecordset.Open […]

为每个唯一代理创build一个新工作表并将所有数据移动到每个工作表

我有这个问题,我试图解决。 每天我都会收到一份包含我需要发送的数据的报告。 所以为了使它更容易一点,我试图find一个macros,创build一个新的表与代理的名称,并移动在创build表中的每个代理的数据… 我find了一个可以做很多事情的人。 但是,由于这不是我的专业领域,所以我无法修改它来处理我的请求,甚至可能使其工作。 任何人有任何想法? Const cl& = 2 Const datz& = 1 Dim a As Variant, x As Worksheet, sh As Worksheet Dim rws&, cls&, p&, i&, ri&, j& Dim u(), b As Boolean, y Application.ScreenUpdating = False Sheets("Sheet1").Activate rws = Cells.Find("*", , , , xlByRows, xlPrevious).Row cls = Cells.Find("*", , , , […]

使用VBA代码如何在Excel 2003中将Excel工作表导出为图像?

请build议从excel工作表中导出数据范围的更好方式,如.jpeg或.png或.gif中的图像。