【问题标题】:Running a procedure based on cell values in another workbook根据另一个工作簿中的单元格值运行过程
【发布时间】:2016-08-22 16:19:11
【问题描述】:

我有六种不同的表格,所有表格都包含相同的信息,但位置不同。这些表格由其他方发送给我,一旦我收到它们,我打开文件,确定我正在处理的表格,然后运行适当的转置宏将信息上传到我的摘要工作簿。

我希望能够检查单元格 B4、B8、B10、B15 和 B20 以确定我正在处理的表格,然后让适当的转置宏自行运行。

有人可以帮我设置一下吗?

现在我有以下内容:

' I use the file path to identify the form that I want to copy information from
Dim FilePath As String
Dim InputTemplate As Workbook
Dim UploadForm As Workbook
Dim Analysis As Worksheet
Dim supplierdata As Worksheet
Dim TemplateType

Set UploadForm = ActiveWorkbook
FilePath = UploadForm.Sheets("Summary").Range("D4").Value
Set InputTemplate = Workbooks.Open(FilePath)
Set Analysis = UploadForm.Sheets("Analysis")
Set supplierdata = InputTemplate.Sheets("Supplier Input Template")

我怎么说如果 B4.value=Company Name, B8.value=Date, B10.value = Currency... 然后运行正确的转置宏?

【问题讨论】:

  • If supplierdata.Range("B4").value="Company Name" And....Then
  • 谢谢蒂姆。有没有办法让我压缩 If 语句的条件?

标签: vba excel macros


【解决方案1】:

你能做到的最简洁的可能是这样的:

'....
Set supplierdata = InputTemplate.Sheets("Supplier Input Template")

With supplierdata.Columns(2) 
    If .Cells(4).value = "Company Name" And .Cells(8).Value="Date" _
       And .Cells(10).Value = "Currency" Then

        'handle this type of form 

    End If


End With

如果您要执行许多此类检查,那么您可以考虑使用“元数据驱动”方法,在工作表上列出范围和相应的内容,然后遍历该信息以检测类型的报告。这将是更多的前期编码,但一旦设置好后,后续维护会更容易。

【讨论】:

  • 明白。感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-11-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多