【问题标题】:How to copy information into a column corresponding to what is found in another column?如何将信息复制到与另一列中找到的内容相对应的列中?
【发布时间】:2015-05-08 08:17:42
【问题描述】:

我编写了一个宏,我想将保存的电子邮件及其附件的路径位置复制到 B 列,但仅适用于未找到 .csv 文件的情况。下面是我的代码:

Dim csv_ap As String
Dim path_report As String

Sheets("Mail Report").Activate
csv_ap = Range("C65000").End(xlUp).Value

If csv_ap = "NO" Then
    path_report = MAIN_PATH & "For Resolution\" & Format(today, "dd_mm_yy") & "manual_handling_" & Range("A65000").End(xlUp).Value

    Range("B65000").End(xlUp).Offset(1).Value = path_report

End If

这是宏运行后生成的电子表格。如您所见,路径未与C 列中的“NO”对齐。我需要宏来实现路径需要与正确的行对齐。我怎样才能做到这一点? (下图为示例,其他情况会有所不同)

【问题讨论】:

    标签: vba excel offset


    【解决方案1】:

    有许多不同的(可能更好的)方法来解决这个问题,但只需对现有代码进行最小的更改,您就可以这样做:

    Dim csv_ap As Range
    Dim path_report As String
    
    Sheets("Mail Report").Activate
    set csv_ap = Range("C65000").End(xlUp)
    
    If csv_ap.Value = "NO" Then
        path_report = MAIN_PATH & "For Resolution\" & Format(today, "dd_mm_yy") & "manual_handling_" & Range("A65000").End(xlUp).Value
    
        csv_ap.Offset(0, -1) = path_report
    
    End If
    

    它不是以csv_ap 形式返回字符串,而是返回一个范围。然后它测试单元格的值,如果等于“否”,则将路径报告返回到左侧的单元格中。

    【讨论】:

    • 当我运行你的宏时。我收到运行时错误“91”。未设置对象变量或 With 块变量。任何想法为什么?
    • 哎呀,我错过了 set csv_ap = Range("C65000").End(xlUp) 中的 Set 关键字。我已编辑答案,请重试。
    猜你喜欢
    • 2011-12-15
    • 2022-01-18
    • 2022-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-24
    • 1970-01-01
    相关资源
    最近更新 更多