0

我有 100 多个不同的用户,他们将使用需要在 ini 文件中进行不同设置的某个程序。我在想 excel 可能是创建这些文件并将它们写入单个文件中的文件夹的最佳方法。数据应如下所示。

所有这些数据都需要在每个文本文件中:

UseMct=
UseCellular=
UseKvh=
UseIridium=
UseAurora=
UseSailor=
SailorUnitAddress=
AuroraUnitAddress=
QualcommSerialPort=
MctUnitAddress=
CellularUnitAddress=
KvhSerialPort=
KvhUnitAddress=
IridiumUnitAddress=
IridiumPositionUrl=
HostUrl=

以下每一列的各个值将具有所需的数据。因此单元格 B1 将具有上述数据位于 A 列中的第一个文本文件的值。


UseMct=(B1 中的值)
UseCellular=(B2 中的值)
等等。

下一个文本文件将再次在 A1 中包含所有这些字段,但使用此字段映射。


UseMct=(C1 中的值)
UseCellular=(C2 中的值)
等等。

这将循环直到文档完成并使用某个字段作为文件名。需要帮忙!谢谢。

我查看了以下问题:
将 Excel 行输出到一系列文本文件
将每个 Excel 行写入新的 .txt 文件,以 ColumnA 作为文件名

4

1 回答 1

2

你需要这样的东西:

Sub iniCreate()

  For iCol = 1 To 3
    Open Environ("UserProfile") & "/MyProg" & Range("B1").Offset(0, iCol - 1).Value _
        & ".ini" For Output As #1
    For jRow = 1 To 16
      Print #1, Range("A2").Offset(jRow - 1, 0); Range("A2").Offset(jRow - 1, iCol)
    Next jRow
    Close #1
  Next iCol

End Sub

我使用随机数作为数据,所以它看起来像这样:

                    V000        V001        V002
UseMct=             0.659099708 0.098897863 0.66830137
UseCellular=        0.081138532 0.064777691 0.919835459
UseKvh=             0.942430093 0.872116053 0.032414535
UseIridium=         0.263586179 0.921751649 0.295967085
UseAurora=          0.867225038 0.094161678 0.11271394
UseSailor=          0.112345073 0.247013614 0.562920243
SailorUnitAddress=  0.641083386 0.630124454 0.430450477
AuroraUnitAddress=  0.133569751 0.431081763 0.620952387
QualcommSerialPort= 0.489904861 0.745152668 0.0371556
MctUnitAddress=     0.390312141 0.643551357 0.621789056
CellularUnitAddress=0.924394826 0.672907813 0.834973453
KvhSerialPort=      0.431335182 0.040557434 0.329205484
KvhUnitAddress=     0.018331225 0.405080112 0.281003
IridiumUnitAddress= 0.530083065 0.428947849 0.781832847
IridiumPositionUrl= 0.473567159 0.428633715 0.00044413
HostUrl=            0.132253798 0.832369002 0.981755331

V000、V001 等构成文件名的一部分。例如 MyProgV000.ini 我使用 UserProfile 环境变量来选择一个输出文件夹。如果您愿意,可以选择另一个。

然后两个 For 循环只是将数据输出到文件中。

于 2013-09-04T23:25:14.347 回答