0

我为我的英语道歉。我希望我在 PAD 中的流程从 Excel 文件中的列中获取“是”和“否”值,如果是,它会打开另一列中的链接并在 Excel 文件中写入所需 UI 元素的值。If-condition 和 loop 单独工作得很好,但不能一起工作。谢谢您的帮助。

在此处输入图像描述

在此处输入图像描述

4

1 回答 1

0

是的,你需要换个角度思考。

我已经在相关单元格中使用以下信息重新创建了您的工作簿(在一定程度上)。

数据

循环时,您需要处理其中一个数据表,然后从循环内的每个其他表中获取索引行。

例如,遍历每个优先级,然后针对给定的优先级,获取相应行中的 URL。当然,这意味着两个表需要具有相同的大小。

不过,最重要的是,您需要遍历每一行并单独处理每一行。 这是您当前脚本的主要问题,它试图批量处理优先级,这是行不通的。

该脚本可以粘贴到 PAD 中,它将演示您需要应用的思想,只需更改对工作簿和列的引用等......

Excel.LaunchAndOpen Path: $'''c:\\temp\\Data.xlsx''' Visible: True ReadOnly: False LoadAddInsAndMacros: False Instance=> ExcelInstance
SET RowIndex TO 0
Excel.ReadCells Instance: ExcelInstance StartColumn: $'''A''' StartRow: 1 EndColumn: $'''A''' EndRow: 11 ReadAsText: False FirstLineIsHeader: True RangeValue=> URLs
Excel.ReadCells Instance: ExcelInstance StartColumn: $'''B''' StartRow: 1 EndColumn: $'''B''' EndRow: 11 ReadAsText: False FirstLineIsHeader: True RangeValue=> Priorities
LOOP FOREACH Priority IN Priorities
    SET URL TO URLs[RowIndex]
    IF Priority = $'''Y''' THEN
        Display.ShowMessage Title: $'''URL''' Message: URL Icon: Display.Icon.None Buttons: Display.Buttons.OK DefaultButton: Display.DefaultButton.Button1 IsTopMost: False ButtonPressed=> ButtonPressed
    END
    Variables.IncreaseVariable Value: RowIndex IncrementValue: 1 IncreasedValue=> RowIndex
END
Excel.Close Instance: ExcelInstance

你可以看到我有一个变量RowIndex,我每次都会递增。该变量通过给我当前的位置提供到另一个数据表的链接,并允许我获取给定行的 URL。

网址索引

这是一种解决方案。

或者,您可以拉回 AD 和 AG 之间的所有列,然后在循环时简单地引用每一行上的列。

于 2022-03-03T06:01:42.783 回答