通过工作表的Excel VBA循环失败

编辑:我采取了所有的build议,并编辑我的代码。 现在,它的作品! 谢谢。

这是新的代码:


Sub WorksheetLoop() Dim AllWorksheets As Integer Dim Worksheet As Integer AllWorksheets = ActiveWorkbook.Worksheets.Count For Worksheet = 2 To AllWorksheets Sheets(1).Select Cells(10, Worksheet).Value = Sheets(Worksheet).TextBoxes(2).Text Cells(13, Worksheet).Value = Sheets(Worksheet).TextBoxes(3).Text Cells(18, Worksheet).Value = Sheets(Worksheet).TextBoxes(1).Text Cells(24, Worksheet).Value = Sheets(Worksheet).TextBoxes(5).Text Cells(34, Worksheet).Value = Sheets(Worksheet).TextBoxes(6).Text Cells(34, Worksheet).Value = Sheets(Worksheet).TextBoxes(4).Text Next Worksheet End Sub 

原始问题

所以有一个Excel文件,其中包含一定量的工作表。 在第一张纸上,脚本应该创build一个概览。 它应该从第二张工作表开始,并将文本框的内容(请不要问为什么有文本框……)写入单元格B10,B13,等等。 然后脚本应该去工作表3,文本框的内容应该去C10,C13,…你明白了…我知道这是唯一可能的Z ….

但为什么我不断收到错误信息?

我的VBA知识是非常小的,所以很抱歉有明显的错误。

编辑:我接受有关周围空间的意见,但我仍然得到“对象不支持这个属性或方法”


 Sub WorksheetLoop() Dim AllWorksheets As Integer Dim Worksheet As Integer AllWorksheets = ActiveWorkbook.Worksheets.Count For Worksheet = 2 To AllWorksheets For CellAscii = 66 To (AllWorksheet + 66) Cell = Chr(CellAscii) Sheets(1).Select Range(Cell & "10").Value = Sheets(Worksheet).TextBox2.Text Range(Cell & "13").Value = Sheets(Worksheet).TextBox3.Text Range(Cell & "18").Value = Sheets(Worksheet).TextBox1.Text Range(Cell & "24").Value = Sheets(Worksheet).TextBox5.Text Range(Cell & "30").Value = Sheets(Worksheet).TextBox6.Text Range(Cell & "34").Value = Sheets(Worksheet).TextBox4.Text Next CellAscii Next Worksheet End Sub 

尝试访问文本框时,请尝试以下操作:

 Sheets("SheetName").TextBoxes("TextBox Name").Text 

validation您的“SheetName”和“文本框名称”是否正确。

希望这对你有用。

范围不采用模式Ay的参考,它与RyCx需要一个。
无论如何,使用SheetX.Cell来访问特定行和列中的特定单元格。

你循环通过这样的单元格:

 Sub MyLoop() For RowCounter = 1 To 20 For ColumnCounter = 1 To 20 Set curCell = Worksheets("Sheet1").Cells(RowCounter , ColumnCounter) If Abs(curCell.Value) < 0.01 Then curCell.Value = 0 Next ColumnCounter Next RowCounter End Sub 

你的代码中的主要错误是前后没有空格&

更改Range(Cell&"10").Value Range(Cell & "10").Value 。 同样的rest和你的代码将运行得很好:)