【发布时间】:2021-11-05 17:27:32
【问题描述】:
文件夹循环有效,但单元格循环无效。我有一个包含 50 个 Excel 文件和一个目标 Excel 文件的文件夹。数据应该从文件夹转到目标 Excel 文件:
#include <file.au3>
#include <Excel.au3>
opt("WinTitleMatchMode", 2)
$path = "C:\Users\User\Desktop\Nezavisimai\Papka2\"
$FileListShort = _FileListToArray($path, "*.xlsx", 1, True)
$ProgExcel = _Excel_Open()
$workbookDestiny = _Excel_BookNew($ProgExcel)
$LineDestiny = 1
_Excel_RangeWrite($workbookDestiny, $workbookDestiny.Activesheet, "Sample type", "A" & $LineDestiny)
_Excel_RangeWrite($workbookDestiny, $workbookDestiny.Activesheet, "Sample name", "B" & $LineDestiny)
_Excel_RangeWrite($workbookDestiny, $workbookDestiny.Activesheet, "Result", "C" & $LineDestiny)
For $i = 1 to $FileListShort[0]
$workbookSource = _Excel_BookOpen($ProgExcel, $FileListShort[$i], False, False)
For $LineSource = 2 to 30
$sampletype = _Excel_RangeRead($workbookSource, "Данные", "A" & $LineSource)
$samplename = _Excel_RangeRead($workbookSource, "Данные", "B" & $LineSource)
$sampleresult = _Excel_RangeRead($workbookSource, "Данные", "C" & $LineSource)
$sampleobs = _Excel_RangeRead($workbookSource, "Данные", "D" & $LineSource)
If $sampletype = "Sample" Then
If $sampleobs <> "Over limit" Then
$LineDestiny = $LineDestiny + 1
_Excel_RangeWrite($workbookDestiny, "Лист1", $sampletype, "A" & $LineDestiny)
_Excel_RangeWrite($workbookDestiny, "Лист1", $sampletype, "B" & $LineDestiny)
_Excel_RangeWrite($workbookDestiny, "Лист1", $sampletype, "C" & $LineDestiny)
EndIF
EndIF
Next
_Excel_BookClose($workbookSource, False)
Next
问题可能在这里:
If $sampletype = "Sample" Then
If $sampleobs <> "Over limit" Then
$LineDestiny = $LineDestiny + 1
【问题讨论】:
-
能否提供一些文件进行测试? 2-3 个文件以及预期的结果应该是什么样子。
-
drive.google.com/drive/folders/… 感谢您的评论。
-
那么,您只想将所有文件放在一张纸上吗?
-
外来生物学家,是的。 wb1 中的 Sheet1 + wb2 中的 Sheet1 + wb3 中的 Sheet1。和 wb1 中的 Sheet2 + wb2 中的 Sheet2 + wb3 中的 Sheet2。