【发布时间】:2018-04-17 21:11:08
【问题描述】:
我在 workbook1 中有一个“F”列,其中包含一些值(在使用一些 excel 公式从其他列中提取和连接后获得),例如 废话-rd1 废话-rd5 废话rd6 blah-rd48do 我想这样做 废话-rd100 等等
我在 workbook2 中有另一列“D”,其中包含如下值 rndm-blah-rd1_sgjgs hjdf-blah-rd5_cnnv sdfhjdf-blah-rd100_cfdnnv 等等
基本上 "Blah-rdxx" 总是与 workbook2 的 D 列中的其他字符串一起出现
现在,我想做的是—— 如果 workbook2 的 D 列中的值包含 workbook1 的 F 列的值 那么 将workbook2的S列对应的值复制到workbook1的H列(第5列)
这是我到目前为止所达到的地方,但它没有复制任何东西,可能因为存在一些问题并且外循环没有迭代,我尝试遵循解决方案 Nested For Next Loops: Outer loop not iterating 并添加了 n 计数器,但外循环仍然没有迭代 -
Sub findandcopy()
Dim r As Range
Dim f As Range
Dim i As Long
Dim j As Long
Dim w1 As Worksheet
Dim w2 As Worksheet
Dim n As Integer
Set w1 = Workbooks("Book1.xlsm").Worksheets("sheet1")
Set w2 = Workbooks("Book2.xlsx").Worksheets("sheet1")
n = 0
For i = 1 To w2.Cells(Rows.Count, 1).End(xlUp).Row
For j = 1 To w1.Cells(Rows.Count, 1).End(xlUp).Row + n
If InStr(1, w2.Cells(i, 1).Value, w1.Cells(j, 3).Value) > 0 Then
w2.Cells(i, 2).Copy (w2.Cells(j, 5))
Exit For
n = n + 1
End If
Next j
Next i
End Sub
【问题讨论】:
-
尝试定义工作簿而不是工作表,例如 Dim wb1, wb2 作为工作簿而不是 w1, w2 作为工作表;然后将其引用为 wb1.sheets(“sheet 1”).etc 和 wb2.sheets(“sheet 1”).etc