1

编辑:我接受了你所有的建议并编辑了我的代码。现在可以了!!!谢谢你。

这是新代码:


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 文档,其中包含大量的工作表。在第一张纸上,脚本应创建概述。它应该从第二个工作表开始,并且应该将文本框的内容(请不要问为什么会有文本框...)写入单元格 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
4

3 回答 3

4

尝试访问文本框时只需尝试以下操作:

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

验证您的“SheetName”和“TextBox Name”是否正确。

希望这对你有用。

于 2013-04-19T11:14:34.943 回答
2

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

更改Range(Cell&"10").ValueRange(Cell & "10").Value。其余的类似,您的代码将运行得很好:)

于 2013-04-19T10:41:36.970 回答
2

Range 没有引用模式 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
于 2013-04-19T10:32:50.183 回答