VBA中的工作表范围功能

时间:2019-07-19 14:35:33

标签: excel vba

可能是一个非常简单的代码,为什么我不能在下面指定单元格和范围?

final_list = [item for sublist in df.values.tolist() for item in sublist]

当我指定1个单元格时,代码完全符合我的要求

If Worksheets("Todaysbatch").Range("C2:C12") = "COOP_DAYEND" Then
FileCopy COOPTEMPLATES & COOPDAYEND, newdir & COOPDAYEND

我希望它浏览If Worksheets("Todaysbatch").Range("C2") = "COOP_DAYEND" Then FileCopy COOPTEMPLATES & COOPDAYEND, newdir & COOPDAYEND 工作表上的单元格C2:C12并匹配字符串Todaysbatch

2 个答案:

答案 0 :(得分:2)

Range("C2:C12)返回一个数组。如果要访问该数组,则可以对其进行循环并查看该值是否存在。

更容易的是,您可以使用工作表功能Match来查看它是否在您的范围内。

我进行了@scottcraner指出的更改,如果不存在,我进行更改的方式将出错。

If Not IsError(Application.Match("COOP_DAYEND", _
  Worksheets("Todaysbatch").Range("C2:C12"), 0)) Then
    FileCopy COOPTEMPLATES & COOPDAYEND, newdir & COOPDAYEND
End If

答案 1 :(得分:2)

就像我在上面的评论一样,您似乎只想知道您的范围是否具有任何值COOP_DAYEND。如果是这样,您可以尝试:

If [COUNTIF(Todaysbatch'!C2:C12,"COOP_DAYEND")] > 0 then
    FileCopy COOPTEMPLATES & COOPDAYEND, newdir & COOPDAYEND
End if