编辑:我接受了所有建议并编辑了我的代码。现在它有效!!! 谢谢。
这是新代码:
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文档,其中包含大量的工作表。 在第一张表中,应该由脚本创建概述。 它应该从第二个工作表开始,应该写入文本框的内容(请不要问为什么有文本框......)到Cell 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
答案 0 :(得分:4)
尝试访问文本框时,请尝试以下操作:
Sheets("SheetName").TextBoxes("TextBox Name").Text
验证您的“SheetName”和“TextBox名称”是否正确。
希望这对你有用。
答案 1 :(得分:2)
范围不参考模式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
答案 2 :(得分:2)
代码中的主要错误是&
将Range(Cell&"10").Value
更改为Range(Cell & "10").Value
。同样地,对于其余部分,您的代码将运行得很好:)