在VBA中使用WITH语句,IF语句和VLOOKUP公式的操作顺序

时间:2018-05-15 20:11:04

标签: excel vba excel-vba vlookup

在我必须采用本节顶行中列出的公式(主要是VLOOKUP公式)的过程中,执行并查找/替换,删除放置在公式前面的撇号并将公式向下拖动到适当的行。过程如下:

  1. 复制单元格AT1:BZ1中的公式并将其粘贴到AT4:BZ4
  2. 如果单元格包含“上周摘要报告名称”,请将其替换为“本周摘要报告名称”。 (35个替代品)
  3. 如果单元格包含“上周最终报告名称”,请将其替换为“本周最终报告名称”。 (3个替代品)
  4. 如果单元格的第一个字符是撇号,请将其删除。
  5. 单击并拖动所有公式到行5000.
  6. 复制数组中的所有单元格并将其粘贴为值(以减小文件大小)
  7. 我能够单独执行这些步骤,但在尝试组合流程的步骤时遇到了困难。我认为我的问题在于我执行这些任务的顺序,而不知道如何在IF语句中嵌套WITH语句。另外,我在使用带有WITH语句的立即窗口时遇到了困难。这是我到目前为止所做的:

    Dim wb_Final As Workbook, nameFinal As String
    Set wb_Final = Workbooks.Open(Filename:=Final_Directory)
    nameFinal = wb_Final.Name
    
    Dim wb_Summary As Workbook, nameSummary As String
    Set wb_Summary = Workbooks.Open(Filename:=Summary_Directory)
    nameSummary = wb_Summary.Name
    
    wb_Summary.Sheets("Sheets 1").Activate
    Range("AT1:BZ1").Copy
    Range("AT4:BZ4").PasteSpecial xlPasteAll
    Application.CutCopyMode = False
    ' This is where my problem is:
    For Each C In Worksheets("Sheets 1").Range("AT4:BZ4").Cells
    'If cell is blank
    'Else
         'If LEFT(cell, 1) = "'"
       Replace(cell, "'", "")
    

    等。

    我尝试了一种不同的方法,可以看到here。这个过程对我来说更有意义,但会产生一个我无法弄清楚的错误。

    我还考虑过定义范围并创建一个DO UNTIL IS NOTHING并将其循环。

    任何帮助都会非常感激:)

0 个答案:

没有答案