vba - 无法使用以下方法在相关列中写入结果
问题描述
我在 vba 中编写了一个脚本来抓取一些在从网页启动搜索时填充的名称。coulmn A
我下面的脚本从in获取输入Sheet2
并将结果写在column B
相关行的旁边。如果我这样尝试,脚本可以完美地编写结果:
Sheets("Sheet2").Cells(R + 1, 2) = post.innerText
或者
cel(1, 2) = post.innerText
object doesn't support this property or method
但是当我这样尝试时它会引发错误( ):
Sheets("Sheet2").cel(1, 2) = post.innerText
这是脚本:
Option Explicit
Sub FetchInfo()
Const URL As String = "https://beta.companieshouse.gov.uk/search/companies?q="
Dim Http As New XMLHTTP60, Html As New HTMLDocument
Dim post As Object, cel As Range, R&
For Each cel In Range("A2:A" & Cells(Rows.Count, 1).End(xlUp).row)
With Http
.Open "GET", URL & cel, False
.setRequestHeader "User-Agent", "Mozilla/5.0"
.send
Html.body.innerHTML = .responseText
End With
Set post = Html.querySelector("#results li.type-company h3 a")
If Not post Is Nothing Then
R = R + 1: Sheets("Sheet2").Cells(R + 1, 2) = post.innerText 'working one
cel(1, 2) = post.innerText 'working one
' Sheets("Sheet2").cel(1, 2) = post.innerText 'doesn't work
End If
Next cel
End Sub
要获得结果column B
,请将输入放入column A
fromRange("A2")
到任何位置。
搜索输入:
Nike Care
Nike Cloud
Nike Construction
Nike Foundation
Nike Homes
我的问题是我怎样才能使这条线完全合格Sheets("Sheet2").cel(1, 2) = post.innerText
仅供参考,我只是按照我尝试和失败的方式寻求任何解决方案。
解决方案
Item
是Range
对象的默认属性,我认为您正在使用您的工作版本访问它,即cel.item(1, 2)
. 它不是与Worksheet
object 一起使用的属性,并且cel
作为变量,不会被识别为 Worksheet 的访问方法。
您可以将其包装在可识别的 Range 成员中:
Range(cel(1, 2).Address)
冗长的完全排位赛可能如下(请让某人有一个更短的方法):
Debug.Print Worksheets(cel.Parent.NAME).Range(cel(1, 2).Address).Address(external:=True)
根据您的实施:
Sheets("Sheet1").Range(cel(1, 2).Address) = post.innerText
推荐阅读
- objective-c - PDFView 获取/设置滚动位置
- reactjs - antd 表单使用复杂的多级嵌套对象进行初始化
- javascript - 如何在Javascript中将对象对象转换为对象数组
- java - 如何在 firebase 中实时检索此元素?
- rust - Rust - 没有为 `OsString` 实现特征`StdError`
- r - 在绘图仪表图中添加悬停文本或文本注释
- angular - 如何更新Angular 9中动态添加的子组件中的值
- html - bxslider 背景图像与滑块内容 z-index 不重叠
- html - MathJax:如何使数学可复制?
- azure - 弹性数据库池的 ARM 模板失败