Excel 编写多个.ini文件的最佳方法

Excel 编写多个.ini文件的最佳方法,excel,text,ini,vba,Excel,Text,Ini,Vba,我有100多个不同的用户将使用某个程序,该程序需要在ini文件中进行不同的设置。我想excel可能是创建这些文件并将它们写入单个文件中文件夹的最佳方式。数据应该是这样的 所有这些数据都需要保存在每个文本文件中: UseMct= UseCellular= UseKvh= UseIridium= UseAurora= UseSailor= SailorUnitAddress= AuroraUnitAddress= QualcommSerialPort= MctUnitAddress= Cellula

我有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中的值)
等等等等。

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

我已经看了以下问题:


你需要这样的东西:

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
我使用随机数作为数据,所以看起来像这样:

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循环将数据输出到文件。

将这些列作为列名,填充excel工作表,然后使用一个小shell或类似脚本将CSV写入不同的文件即可。顺便说一句,你试过什么?你的映射有点混乱。你有一个在c列,然后是b列,但下一个只在c列?你的意思是把第一个c1作为b1吗?你到底有什么问题?我看到你用同样的名字注册了第二个帐户,以便发表评论来回答你自己的问题。从多方面来看,这不是一个好主意。1.您可以使用相同的帐户回答自己的问题,但如果您的代表人数少于100人,则需要8小时的等待时间。2.使用相同的帐户,您可以编辑自己的帖子而无需同行评议。如果您提交的编辑是由发布问题的帐户提交的,则您与第二个帐户一起提交的,该帐户在建议编辑队列中等待批准长达一小时。StackOverflow的“回答”表示您正在回答问题。这不像论坛上的“回复”。你的回答应该是评论。虽然你需要至少50个代表才能对别人的帖子发表评论,但你可以对自己的帖子发表评论,而不管代表是谁——如果你使用同一个帐户!瑞克,我相信这对我有用,谢谢你的帮助。明天我会通知您。Rick在使用上面的vba代码和您提供的数据时,生成的文件会重复两次.ini属性。例如,生成的文件的第一行是UseMct=UseMct=。我将I和j的值更改为iCol和jRow,使其更易于理解。如果我把它们都改了,一切都会好起来的。上面的代码现在应该可以了。这将教会我不要使用选项显式。没问题!这很有效。衷心感谢。通过今天的捣乱,我学到了很多。没有想到要把iCol放在那里:)