excel - 如何在一张表VBA中循环每个表
问题描述
我试图从 excel 文件生成表和列的列表到 txt 文件。我的代码只是为所有 clumn 生成直到行尾,因为我不知道如何定义变量来限制每个表的循环:
这里是代码和excel数据图像Excel数据
Dim field As String
Dim table As String
Dim t As Integer
Dim f As Integer
Dim lastrow As Integer
Dim myFile As String
Dim xStr As String
myFile = "D:\table.txt"
With Sheets("Sheet1")
Open myFile For Output As #1
table = """table_name"": """ & .Range("I2") & ""","
Print #1, table
lastrow = Range("A" & Rows.Count).End(xlUp).Row
For f = 2 To lastrow
field = """column_name"": [" & Chr(10) & """" & .Range("B" & f) & """" & Chr(10) & _
"],"
Print #1, field
Next f
Close #1
End With
我想像下面的代码(CMIIW逻辑),但是如何在vba上写这个:
for t = 1 to "count table on sheet (i dnt know how to define this value)"
table = "tablename"
Print #1, table
for f = "first row table t + 1" to lastrow table t
field= "fieldname"
Print #1, field
Next f
Next t
根据 user11246173 的回答,我知道如何循环作为表数,但我仍然无法像上面的代码一样获得每个特定单元格的范围。请帮助解决我的代码。
任何人都可以请帮助我吗?
解决方案
在 VBA 中,工作表称为 ListObjects。它们是属于父工作表的集合,并且(在其他属性中)与大多数其他集合对象一样具有计数和索引。每个 ListObject 都有许多 ListColumn。
Option Explicit
Sub loopLO()
Dim i As Long, c As Long
With Worksheets("sheet1")
For i = 1 To .ListObjects.Count
Debug.Print .ListObjects(i).Name
For c = 1 To .ListObjects(i).ListColumns.Count
Debug.Print .ListObjects(i).ListColumns(c)
Next c
Next i
End With
End Sub
推荐阅读
- excel - 将 Excel 连接到 Outlook
- apache-kafka - 即使在配置广告侦听器后也无法连接到远程 kafka 代理
- constraints - Optaplanner 7 ConstraintStream 根据每个实例的函数值奖励
- java - 在不同线程中处理数据库中多行的最佳实践
- lua - luajit '=' 预计在 '-' 附近
- javascript - 如何检测滚动条是否存在?
- node.js - 对路径“_id”执行更新将修改 mongoose/mongodb 上的不可变字段“_id”
- arrays - 在Vuejs中使用过滤器搜索json?
- azure - Azure Web 应用连接到专用网络上的 VM 服务
- c# - Cookie.ExpireTimeSpan 被忽略并在 CookieAuthentication 中设置为 Session