Это очень простой вопрос, и я гуглил, как "передавать переменные из цикла for, для каждого" и т. Д., И все это казалось двусмысленным или неадекватным.Может быть, потому что это даже невозможно?
У меня есть файл Excel, в котором есть список номеров файлов, с которыми я буду работать позже в своем коде для поиска PDF-файлов в каталоге.Мой код работает нормально, но мой код заполнен циклами, вложенными циклами, и все всегда должно быть внутри этих циклов, потому что именно там объявлены переменные.Пример в этом коде ниже:
Imports Microsoft.Office.Interop.Excel
Imports Microsoft.Office.Interop
Module Module1
Dim aCell As Object = Nothing
Dim eachcell As New List(Of String)
Sub Main()
Dim xlApp As Excel.Application
Dim xlWorkBook As Excel.Workbook
Dim xlWorkSheet As Excel.Worksheet
Dim range As Excel.Range
Dim aCpage = "unknown"
xlApp = New Excel.Application
xlWorkBook = xlApp.Workbooks.Open("C:\Users\XBorja.RESURGENCE\Desktop\xavier.xlsx")
xlWorkSheet = xlWorkBook.Worksheets("sheet1")
range = xlWorkSheet.UsedRange.SpecialCells(XlCellType.xlCellTypeConstants)
Dim currentcell = Nothing
For Each i In range.Value
eachcell.Add(i)
Next
For Each aCell In eachcell
currentcell = aCell.ToString
Console.WriteLine(currentcell)
Next
End Sub
Это прекрасно работает, на консоли он показывает список всех номеров файлов, которые я написал в своем листе Excel:
ZTEST01.SMITH
ZTEST14.SAMPLE05
ZTEST02.RESTAURANT
ZTEST12.SAMPLE03
ZTEST03.MCDONALD
ZTEST04.DOE
ZTEST10.SAMPLE01
ZTEST13.SAMPLE04
ZTEST11.SAMPLE02
Press any key To Continue . .
, но если яиспользуйте этот код:
For Each i In range.Value
eachcell.Add(i)
Next
For Each aCell In eachcell
currentcell = aCell.ToString
Next
Console.WriteLine(currentcell)
End Sub
Это только говорит мне о последнем значении
ZTEST.11.SAMPLE02
Я знаю, что логика заключается в том, что поскольку запись консоли находится внутри цикла for, она отображает каждое значениев Excel и добавление этих значений в консоль, пока цикл не завершится.
Мой вопрос: как бы я мог вызвать весь этот список / массив вне для цикла for?
Я знаю, с помощью + = вы можете добавить целые числа, чтобы получить сумму в цикле for, и я попробовал это с помощью этого кода, и он просто вернул мне все объединенные номера файлов.
Может ли цикл for бытьпревратился в другую подпрограмму, поэтому я могу назвать эту переменную "currentcell" вне цикла?Или это можно превратить в функцию, чтобы вся моя подпрограмма всегда могла использовать эту переменную?