【问题标题】:Loop through each cell in a table循环遍历表格中的每个单元格
【发布时间】:2016-06-30 17:46:33
【问题描述】:

我有一张桌子要循环。如果活动单元格包含 1,则在表格外的单元格中,将返回列标题并将其放入逗号分隔列表中。

我正在寻找该循环以逐个单元格地继续遍历第一行,并以逗号分隔的列表构建每个 TRUE 返回。

一旦循环到达行尾,我需要它下拉到下一行并继续相同的过程(但为在第 2 行中返回 true 的那些创建自己的逗号分隔列表)。

【问题讨论】:

  • 写下你目前能做的,向我们展示你所拥有的。如果您编写了一些代码并遇到特定问题,人们更有可能在这里为您提供帮助。
  • 感谢您的建议。我会试一试
  • 这并不是说 SO 是为了更高级的用户 - 它是为了帮助编辑现有的代码/故障排除。这不是一个“我该怎么做”类型的网站,而是“我试过这个,但它不起作用,为什么?”用户已经付出了一些努力/尝试的地方。我建议阅读How to Ask 以获得更多见解。我们非常愿意帮助最新手的新手。试着环顾四周,拼凑一些代码。使用宏记录器是一个很好的起点。
  • 我建议您(在第一步中)使用 VBA 宏记录器记录您希望 Excel 为您做的事情:youtube.com/watch?v=Q_HQGHPBYoo 然后,看看代码并尝试理解它通过突出显示 VBA 关键字并按 F1。另外,我建议您阅读以下内容:homeandlearn.org 之后,您应该设置自己为上述问题提供第一个解决方案。如果您仍然遇到问题,请随时返回此处,就您尝试编写的代码寻求具体建议。

标签: excel vba loops if-statement


【解决方案1】:

我会帮你的! (希望)

Dim x, y as Integer
x = 1
y = 1

For y = 1 To 100
   If Worksheets("Sheet1").Cells(y, x) = "1" Then
      If Worksheets("Sheet2").Cells(1, 1) = "" Then
         Worksheets("Sheet2").Cells(1, 1) = Worksheets("Sheet2").Cells(1, 1) & x & "/" & y
      Else
         Worksheets("Sheet2").Cells(1, 1) = Worksheets("Sheet2").Cells(1, 1) & ", " & x & "/" & y
      End If
   End If
   If y = 100 And x < 100 Then
      y = 1
      x = x + 1
   End If
Next y

因为您是 VBA 新手,所以我会告诉您 "Sheet(n)" 取决于您使用 excel 的语言(英语、德语、西班牙语)。希望这就是你想要的。 :)

基于您最近评论的下一个代码:

Dim y, x as Integer
Dim aString as String

y = 2
x = 1

For y = 2 To 100
    If Worksheets("Sheet1").Cells(y, x) = "1" Then
        aString = Worksheets("Sheet2").Cells(1, x)
        If Worksheets("Sheet2").Cells(1, 1) = "" Then
            Worksheets("Sheet2").Cells(1, 1) = _
            Worksheets("Sheet2").Cells(1, 1) & aString
        Else
            Worksheets("Sheet2").Cells(1, 1) = _
            Worksheets("Sheet2").Cells(1, 1) & ", " & aString
        End If
    End If
    If y = 100 And x <> 100 Then
        y = 2
        x = x + 1
    End If
Next y  

【讨论】:

  • 感谢您的帮助,我非常感谢!不幸的是,当我将其插入工作表时,我留下了“Run0time 错误'438':对象不支持此属性或方法”
  • 没关系,找到了。我的错!另外:此代码仅循环通过前 100x100 个单元格。如果您想要更多,只需更改值(1000 而不是 100..)
  • 好的,现在运行了,但仍然不太正确。这是在表格 2 单元格 (1,1) 中创建一个逗号分隔的列表,该列表似乎是表中“1”的位置。我正在寻找的是单元格有一个 "1" ,然后该列的第一行(一个字符串)被放入一个逗号分隔的列表中。表格的每一行最后都应该有自己的逗号分隔列表;填充了由于 1 存在而返回“是”的各种列标题。
  • 如果这没有意义或太过分了,我真的很感谢您的帮助!
  • @K.Wrigley :请考虑accepting 的答案并关闭它。这将向其他用户表明 (a) 此帖子不再需要他们的关注,并且 (b) 如果有人正在寻找特定问题的解决方案,那么此帖子将显示为带有有效解决方案的问题。
猜你喜欢
  • 2021-05-13
  • 1970-01-01
  • 2016-05-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多