首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Excel VBA循环通过工作表失败

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

Stack Overflow用户
提问于 2013-04-19 10:30:54
回答 3查看 2.5K关注 0票数 1

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

以下是新代码:

代码语言:javascript
复制
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,anso等。然后脚本应该转到工作表3,文本框的内容应该转到C10,C13,.你知道这个主意..。我知道这只有Z才有可能.

但是为什么我总是收到错误信息呢?

我的VBA知晓率很小,很抱歉有明显的错误。

编辑:我听取了关于周围空格的建议&但我还是得到了"object不支持这个属性或方法“

代码语言:javascript
复制
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
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-04-19 11:14:34

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

代码语言:javascript
复制
Sheets("SheetName").TextBoxes("TextBox Name").Text 

验证您的"SheetName“和"TextBox名称”是否正确。

希望这对你有用。

票数 4
EN

Stack Overflow用户

发布于 2013-04-19 10:32:50

Range不使用模式Ay的引用,而是使用RyCx进行引用。

无论如何,使用SheetX.Cell访问特定行和列中的特定单元格。

你在这样的细胞中循环:

代码语言:javascript
复制
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
EN

Stack Overflow用户

发布于 2013-04-19 10:41:36

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

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16102583

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档