那么让我们看看如何解释这一点。
我对VBA和宏很新,我想我现在正试图为我做一些复杂的事情。
我在.html文件中有我想要的数据。如果我用excel打开它,所有数据都出现在A栏中,但我只对有关Banana斑点的数据感兴趣。因为没有任何东西只出现一次,我需要在该列中找到“这就是我想要的”,我想从那里复制下18行并将其粘贴到A4中(因为我在其他单元格中有一个公式,使用我正在粘贴它的单元格中的数据
我遇到的问题是我有两种类型的香蕉,它们位于不同的文件夹中,所以它是一个可变的位置。
所以这两种类型是Banana和Banana +
Banana数据位于:\ folder \ Quality \ banana \ v9.9 \已完成然后每批香蕉都有一个文件夹(即Lot 123),在该文件夹中有一个结果文件夹,在该文件夹中是Report.html
同样适用于Banana +,数据位于:\ folder \ Quality \ banana + \ v.2.1 \已完成,然后与之前相同,每个文件夹包含一个数据文件夹,一个结果文件夹和Report.html内部。
希望一切都有意义。
这是我到目前为止的地方
表被称为“水果” lotnumber在单元格B1中 路径在单元格F1中(从下拉列表中选择香蕉类型后出现) 我在那个单元格中写的路径是
\\folder\Quality\banana\v9.9\Completed
\\folder\Quality\banana+\v2.1\Completed
Sub PullData_click()
'Find the name of the file with the data in
'Lotnumber is in cell B1 of sheet “Fruit”
Dim lotnumber As String
lotnumber = ThisWorkbook.Sheets("Fruit").Range("B1").Value
Dim path As String
path = ThisWorkbook.Sheets("Fruit").Range("F1").Value
Dim filename As String
Set filename = path & "\Lot" & lotnumber & "\Data\Results.html"
ChDir "\\folder\Quality"
Workbook.Open filename:=filename
'search the specific string this is what i want
Dim spotsrow As Long
On Error Resume Next
spotsrow = Application.WorksheetFunction.Match("This is what i want", Range("A:A"), 0)
On Error GoTo 0
If spotsrow > 0 Then
'Select 18 rows from sheet bqcPublication_Script, copy and paste it in A4
Sheets("bqcPublication_Script").Range("A" & spotsrow & ":A" & spotsrow + 18).Copy
ThisWorkbook.Sheets("Fruit").Range("A4").PasteSpecial (xlPasteValues)