Tag: vba

语法错误在VB子程序调用?

在Excel电子表格后面的Visual Basic代码中,我有一个带有参数的子例程。 这是从另一个子程序调用的。 这是子程序声明: Sub rowPasting(ByVal oldRow As Integer, ByVal newRow As Integer, ByVal oldSheet As Worksheet, ByVal newSheet As Worksheet) 这是电话: rowPasting(j,k,TTWorksheet,newSheet) 所有我用作参数input的variables都被设置并且是有效的,因为在我试图添加这个新的子程序之前,它们被用于程序的工作部分。 任何想法是什么导致语法错误的通话?

使用VBA excel多个类名从网站拉取数据

我知道这已被问了很多次,但没有看到一个明确的答案循环通过一个div和findind标签具有相同的类名。 我的第一个问题: 如果我有这样的事情: <div id="carousel"> <div id="images"> <div class="imageElement"> <img src="img/image1.jpg"> </div> <div class="imageElement"> <img src="img/image2.jpg"> </div> <div class="imageElement"> <img src="img/image3.jpg"> </div> </div> </div> 所以我想把所有的img Src与div中的“images”一起放入imageElement类名中,并将它们复制到excel中的某些单元格中。 第二个问题:我已经看到了用VBA拉网站内容的两种方法,一种是使用IE,另一种是使用浏览器的代码。 Private Sub pullData_Click() Dim x As Long, y As Long Dim htm As Object Set htm = CreateObject("htmlFile") With CreateObject("msxml2.xmlhttp") .Open "GET", "http://website.html", False .send htm.body.innerHTML = .responsetext […]

Excel VBA – 遍历一个工作簿中的列,将信息粘贴到相应的工作簿中

我有一个工作簿中的当前数据和另一个工作簿中的存档数据。 在“最近数据工作簿”的“B”列中,我有一个IDvariables。 我想说: 对于最近数据的B列中的每个ID,迭代已归档工作簿的列A中的所有行。 如果匹配,则将“最近数据工作簿”的各个列条目复制到存档工作簿中。 我写了工作代码,但问题是,在“归档数据”工作簿中有1,048,575行,因此For循环对于每个匹配运行非常缓慢。 有没有更好的方法来思考这个问题? 这是我现在的代码: Sub CopyDataLines() Dim wb As Workbook, wb2 As Workbook Dim ws As Worksheet Dim vFile As Variant Dim Filter As String Dim FilterIndex As Integer Dim Pupid As String 'Set source workbook Set wb = ActiveWorkbook Set wbSheet = ActiveSheet 'Filters for allowed files Filter = "Excel […]

我可以采取一系列的单元格,删除重复和空白单元格,然后复制到VBA Excel中已经存在的表?

我对VBA很新,所以如果我完全错误的话,请原谅我。 基本上,为了给出我在做什么的概述,我有一个由用户填写的模板。 在模板上有值需要添加到表中,但我不想添加空白或重复。 我开始通过冷凝他们在一个连续的范围,我能弄清楚如何删除重复,但我不能删除剩下的一个空白。 另外,我不确定将它们添加到另一个工作表上的最佳方式。 这是我迄今为止… Sub UpdateKey() Range("P10:P36").Select Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues Selection.RemoveDuplicates Columns:=1, Header:=xlNo End Sub 就像我说的,这总是让我在中间空白,我不知道如何摆脱,我不知道从哪里去添加剩下的东西。 谢谢你的帮助!

VBA:循环w / IE.doc引用中的错误91不一致

我毫不犹豫地承认,我对HTML对象库不太了解。 我有一个IRS雇主识别号码的电子表格,我必须将其识别为在我的数据库中。 我只有基于Web的访问这个数据库,其他人已经写了HTML和pipe理数据库。 我相信他们的方法是过时的,他们的devise实践很差; 但是我不是数据库pipe理员,所以我知道什么? 因此,我最终的正常做法是在search页面inputEIN并logging结果。 我的Excelmacros是为了 login到基于Web的数据库查询网站。 循环通过EIN,注意find哪些EIN 但是,我有以下问题: 答:login部分很好地工作,但有一个怪癖:我必须离开“如果然后”,validationlogin成功(或不)​​,否则login失败。 鉴于login后发生“If Then Else”,这完全是莫名其妙的。 B.判断EIN是否在数据库中的唯一方法是查看innerText并查看EIN是否发生在查询产生的页面上。 这是行不通的,也就是说,我只是在testing中得到一个正确的命中,我连续两次查询同一个EIN。 (我碰到第二个EIN。) C.在循环中,我得到不一致的错误91(对象variables未设置)。 有时循环完成; 有时会挂起,但从来不在同一个地方。 我的代码如下(虽然我不得不改变url): Option Explicit Sub FillFromWorkbookTest() On Error GoTo ErrHandler Const cURL = "https://www.someURL.com/LoginPage.jsp" Const cUsername = "myUSERNAME" Const cPassword = "myPASSWORD" Dim IE As Object Dim Doc As HTMLDocument Dim LoginForm As HTMLFormElement Dim UsernameInput […]

迭代集合(VBA)

你好,我是VBA新手,我正在尝试迭代我已经做的一个集合,并为每个值执行一个操作。 这是我的代码: Sub makeRowsMatch() Dim rows As VBA.Collection Set rows = New VBA.Collection Dim i As Integer Dim j As Integer Dim y As Integer For i = 2 To 22203 For j = 2 To 121 If Cells(i, 2).Value <> Cells(j, 38) Then rows.Add (i) End If Next j Next i For Each y […]

VBA百分之百

我在Excel中有以下的vba命令 wbImportFrom.Sheets("Sheet 3").Cells(n, 8).Value 这例如返回我这个 0,128888889 我可以把它变成百分比 Format(wbImportFrom.Sheets("Sheet 3").Cells(n, 8).Value,"Percent") — returns 13.00 % 我如何将百分比数字整数(13%)? 其他例子 0,057 => 6% 0,088571429 => 9% 0,15 => 15% 0,048461538 => 5% 0,128888889 => 13% 0,03 => 3% 0 => 0% 我尝试了Round和Val函数,但是对我来说根本不起作用:p

使用Excel VBA激活工作表

我在文件夹中有一个“Workbook A”文件。 每两周发送一次更新的版本给我。 我想从另一个工作簿“工作簿B”打开此工作簿,同时删除“工作簿A”中的空白行。 打开和删除操作将通过使用macros来进行。 这是迄今为止我的代码。 Sub RemoveEmptyRows() ' this macro will remove all rows that contain no data ' ive named 2 variables of data type string Dim file_name As String Dim sheet_name As String file_name = "C:\Users\Desktop\Workstation_A\Workbook_A.xlsm" 'Change to whatever file i want sheet_name = "Worksheet_A" 'Change to whatever sheet i want ' […]

在excel vba中删除单元格范围内的重复项

我正在尝试删除Excel 2013 VBA中的重复项。 但我收到错误“对象不支持此属性或方法”。 问题是我没有静态范围select。 我想删除列heaader'abcd'中的重复项。 Cells.Find(what:="abcd").Activate ActiveCell.EntireColumn.Select Set rng = Selection ActiveSheet.rng.RemoveDuplicates

在用户窗体之间传递数据

在Excel VBA中,我有一个类似于下面的用户表单,用户input一个ID号,然后在用户表单上显示详细信息: Private Sub btnIDNo_Click() Dim IDNo As Long If txtIDNo.Text <> "" Then If IsNumeric(txtIDNo.Text) = True Then lblError.Caption = "" IDNo = txtIDNo.Text Worksheets("Details").Activate Range("B4").Select While ActiveCell.Value <> "" And ActiveCell.Value <> IDNo ActiveCell.Offset(1, 0).Select Wend If ActiveCell.Value = IDNo Then txtName.Value = ActiveCell.Offset(0, 1).Value txtPhone.Value = ActiveCell.Offset(0, 2).Value Else lblError.Caption = "Cannot […]