我已经使用这个网站和其他网站来启动和运行这个项目,但我遇到了障碍。我正在做的是从特定工作簿 (ImportConvert.xlsx) 导入(复制)列 c - h 并将它们粘贴到 ControlBook.xlsm 的列 a - f 中。然后我复制第三个工作簿 (Clients.xlsx) 的 a -c 行并将这些列粘贴到 ControlBook.xlsm 的 m - o 列中。两者都在同一个工作表上。到目前为止,我能够从我读过的教程中得到那么远,并感谢所有这些信息。我打算完成的下一件事是使用 O 列中的每个值搜索工作表 B 列中的每个值,以查看 O 列中的值是否包含在 B 列中的字符串值中。找到匹配项时,我想要O 列中的值显示在 g 列中。
当我执行代码时,它会从头到尾处理,但不会显示 g 列中的值。
这是代码:
Sub StartProcess()
Dim wbk As Workbook
strDataFile = "C:\Documents and Settings\Administrator\Desktop\ImportConvert.xlsx"
strMasterFile = "C:\Documents and Settings\Administrator\Desktop\ControlBook.xlsm"
strClientFile = "C:\Documents and Settings\Administrator\Desktop\Clients.xlsx"
Set wbk = Workbooks.Open(strDataFile)
With wbk.Sheets("Data")
Range("c:h").Copy
End With
Set wbk = Workbooks.Open(strMasterFile)
With wbk.Sheets("Deposits")
Range("a:f").PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
End With
wbk.Save
wbk.Close
Set wbk = Workbooks.Open(strClientFile)
With wbk.Sheets("ActivePayee")
Range("a:c").Copy
End With
Set wbk = Workbooks.Open(strMasterFile)
With wbk.Sheets("Clients")
Range("m:o").PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
End With
Dim rngSub As Range
Dim rngSrch As Range
For Each rngSub In Range("o2:o1000")
For Each rngSrch In Range("b2:b1000")
If InStr(rngSrch, rngSub) > 0 Then
rngSrch.Offset(, 5) = rngSub.Value
End If
Next
Next
End Sub
这不是最优雅的解决方案,但我试图帮助的人不耐烦,现在就想要它(不考虑正确构建)。在他平静下来后,我会回去学习一种更优雅的方式来构建这个项目。我只是想给这家伙一些东西,以防止他如此恐慌。
我很少接触 VBA,但我熟悉通过 PhP、mySQL 等进行编程。我在 90 年代末和 2000 年代初摸索过 VBA,但很长时间没有接触过 VBA。
提前感谢您的任何帮助。