excel vba遍历工作表并根据输入设置值

问题描述

|| 我正在尝试遍历每个工作表,并将A列的100行设置为输入参数的值。我希望每个工作表都调用一个输入框,并使该列的值等于该输入,但是正在发生的事情是第一个工作表正在获取最后一个输入,并且除工作表1外,columnA的所有工作表值都为空白。
Dim wkbkorigin As Workbook
Set wkbkorigin = Workbooks.Open(\"C:\\bookB.xls\")

For Each ThisWorkSheet In wkbkorigin.Worksheets  
    Subject = InputBox(\"Enter the \'Subject\' field for \" & ThisWorkSheet.Name & \":\")
    For i = 1 To 100  
        Range(\"A2\").Cells(i,1) = Subject
    Next
Next
    

解决方法

        您可能需要更改:
Range(\"A2\").Cells(i,1) = Subject
至:
ThisWorkSheet.Range(\"A2\").Cells(i,1) = Subject
Range
本身将应用于当前工作表(根据您的症状,这是第一个工作表),因此您要做的只是每次覆盖该工作表中的单元格。 这就是为什么它们最后输入最后一个值,而其他工作表仍为空白的原因。     ,        另外,也不需要循环-只需使用:
ThisWorkSheet.Range(\"A2:A100\").Value = Subject
哪个会更快