乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 186|回复: 18

[编程交流] C++或VBA

[复制链接]

56

主题

284

帖子

231

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
289
发表于 2022-7-6 22:22:58 | 显示全部楼层 |阅读模式
你好,
 
我想制作一个可执行程序(.exe),带有一个包含一些按钮的窗体(窗口)和一个Excel单元格区域(13列和行变量,我用复制/粘贴的方法填充它们)。
 
什么编程语言更容易学习:C++还是VBA?
我只使用LISP(ActiveX)。
 
 
提前谢谢。
回复

使用道具 举报

48

主题

1073

帖子

1043

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
238
发表于 2022-7-6 22:27:56 | 显示全部楼层
我不能说关于C++的任何事情,但我认为你不能用VBA制作exe。VBA是Visual BASIC的一个子集,需要在另一个应用程序(AutoCAD、Word、excel等)中使用。如果您正在考虑学习其他东西来帮助使用AutoCAD,我将避免使用VBA,因为它不再受现成支持。它可以通过免费下载来启用,但这意味着支持比以前更少。Visual Basic将允许您生成exe,但已被VB取代。网我目前正在努力学习VB。Net所以不能评论它在你的情况下的有效性,但它确实值得学习。
回复

使用道具 举报

56

主题

284

帖子

231

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
289
发表于 2022-7-6 22:30:15 | 显示全部楼层
谢谢你的回复。我读了一点C++手册,但很难。
杀死我的语法和声明函数和变量。
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 22:33:30 | 显示全部楼层
该工具也可以是基于Excel的,即它是一个宏-这可以在VBA或VSTA(Visual Studio Tools for Applications)中设计。
如果您需要一个可以访问Excel并控制工作表的独立工具(可执行文件),那么我建议您从中选择一种语言。Net pack,VB或C#(夏普)。你会在互联网上找到很多已经为你的项目开发的代码。C++很难掌握。
回复

使用道具 举报

56

主题

284

帖子

231

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
289
发表于 2022-7-6 22:39:21 | 显示全部楼层
我想制作一个程序,以特殊格式导入idx文件(文本):
 
 
 
 
读取文件后,按数据列排列单元格窗口。
在这里,我希望能够添加或删除信息行。
 
最后,你可以特别节省。idx格式。
 
我认为它在Excel中不起作用。
回复

使用道具 举报

1

主题

80

帖子

73

银币

初来乍到

Rank: 1

铜币
16
发表于 2022-7-6 22:40:25 | 显示全部楼层
我同意MSasu的观点。如果您想阅读的部分。idx文件转换为Excel进行编辑和保存,然后使用以下语言:
[列表]
  • VBA已在Excel中
  • .NET-C#或VB
    任何一种环境都允许您创建表单并将事件挂接到按钮。您需要至少一个按钮事件来打开文件并填充表,另一个按钮事件来导出编辑的结果。
     
    如果这是供您自己使用或在您的办公室内使用,Excel VBA是更容易的选择。
    如果您希望出售。网会让你切一个。exe并签名。
     
    为此,我会远离C++。
     
    hth公司
     
    休·亚当森
    www.hatchkit。通用域名格式。澳大利亚
  • 回复

    使用道具 举报

    106

    主题

    1万

    帖子

    101

    银币

    顶梁支柱

    Rank: 50Rank: 50

    铜币
    1299
    发表于 2022-7-6 22:45:16 | 显示全部楼层
    下载Microsoft Visual Studio的免费副本作为起点。这取代了旧的Visual basic编译器VB6等,但现在重点放在。网
     
    DBRODA您可以从VBA生成exe,只需使用正确的编译器。我放弃了Visual studio,现在要学习很多东西,但我知道可以将VBA导入其中并编译。
    回复

    使用道具 举报

    56

    主题

    284

    帖子

    231

    银币

    后起之秀

    Rank: 20Rank: 20Rank: 20Rank: 20

    铜币
    289
    发表于 2022-7-6 22:48:53 | 显示全部楼层
    谢谢你们的回答。
     
    我和其他朋友讨论过,结论是一样的:
     
    回复

    使用道具 举报

    35

    主题

    2471

    帖子

    2447

    银币

    初露锋芒

    Rank: 3Rank: 3Rank: 3

    铜币
    174
    发表于 2022-7-6 22:52:54 | 显示全部楼层
    正如BIGAL所指出的,有一个免费版本。Net pack的组件。只需搜索VB。Net或C#。Net Express-安装后需要激活注册。然而,如果我记得清楚的话,这种用法是不允许用于商业目的的。
    回复

    使用道具 举报

    56

    主题

    284

    帖子

    231

    银币

    后起之秀

    Rank: 20Rank: 20Rank: 20Rank: 20

    铜币
    289
    发表于 2022-7-6 22:54:54 | 显示全部楼层
    我已经从Excel开始用VBA写东西了,这是合理的。
     
     
    1. Sub LoadIDX()
    2.    Dim aSheet As Worksheet
    3.    Dim lngLastRow As Long, lngLastCol As Long
    4.    Dim i, j, k, l As Integer
    5.    Dim st, en, st1, en1 As Boolean
    6.    Dim spli() As String
    7.    Dim MyDate
    8.    MyDate = Date    ' MyDate contains the current system date.
    9.    aIDXfile = ThisWorkbook.Application.GetOpenFileName("IDX File to Open(*.idx),*.idx")
    10.    If aIDXfile = False Then
    11.       Exit Sub
    12.    End If
    13. ActiveSheet.PageSetup.CenterHeader = "&D  &B&ITime:&I&B&T"
    14.   ActiveWorkbook.Sheets.Add After:=Worksheets(Worksheets.Count) ' xlWorksheet ' Add New Sheet
    15.   Set aSheet = ThisWorkbook.ActiveSheet
    16.      aSheet.Activate
    17.    Cells(1, 1).Interior.ColorIndex = 3 ' Culoare Celula
    18. '    Range(Cells(1, 1), Cells(Rows.Count, Columns.Count)).Value = ""
    19. '    Range(Cells(1, 1), Cells(Rows.Count, Columns.Count)).Borders.LineStyle = xlNone
    20. '    Range(Cells(1, 1), Cells(Rows.Count, Columns.Count)).Interior.ColorIndex = 0
    21.    aSheet.Cells(3, 4) = "Data :"
    22.    Cells(3, 4).Font.ColorIndex = 3
    23.    aSheet.Cells(3, 5) = Format(Date, "yyyy.mm.dd/") + Format(Time, "hh.mm.ss") 'Date
    24.    Cells(3, 5).Font.ColorIndex = 3 ' 3=Rosu , 1=Negru
    25.    aSheet.Cells(2, 2) = "Fisierul :"
    26.    Cells(2, 2).Font.ColorIndex = 4 ' 4=Verde , 1=Negru
    27.    aSheet.Cells(2, 3) = aIDXfile
    28.    aSheet.Cells(4, 1) = "ID"
    29.    aSheet.Cells(4, 2) = "Nume"
    30.    aSheet.Cells(4, 3) = "Est [ m ]"
    31.    aSheet.Cells(4, 4) = "Nord [ m ]"
    32.    aSheet.Cells(4, 5) = "Cota [ m ]"
    33.    aSheet.Cells(4, 6) = "Cod"
    34.    l = 1
    35.    While l < 9
    36.    aSheet.Cells(4, l + 6) = "Atribut " + Format(l)
    37.    l = l + 1
    38.    Wend    ' End While loop when Count
    39.    ActiveWindow.SplitRow = 3.5 ' Impartire Pagina
    40.    Open aIDXfile For Input As #1    ' Open file for input.
    41. i = 5
    42. st = False
    43. en = False
    44. Do While Not EOF(1)    ' Loop until end of file.
    45.    Line Input #1, mystring
    46.    mystring = LTrim(mystring)
    47.   If Left(mystring,  = "THEMINFO" Then
    48.         en = True
    49.   End If
    50.    If st And en = False Then
    51.         spli = Split(mystring, ",")
    52.         Cod = spli(2)
    53. '         For j = 1 To UBound(spli) '+ 1
    54. '           vastr = Replace(spli(j - 1), Chr(34), "")
    55. '           vastr = Replace(vastr, ";", "")
    56. '           aSheet.Cells(i, j).Value = vastr
    57.           aSheet.Cells(i, 1).Value = spli(0) ' Nr
    58.           aSheet.Cells(i, 2).Value = spli(1) ' Nm
    59.           aSheet.Cells(i, 3).Value = spli(3) ' E
    60.           aSheet.Cells(i, 4).Value = spli(4) ' N
    61.           aSheet.Cells(i, 5).Value = spli(5) ' Z
    62.          If Cod <> "" Then
    63.           aSheet.Cells(i, 6).Value = Cod
    64.          End If ' Cod
    65. '         Next j
    66.         i = i + 1
    67.    End If
    68.   If Left(mystring, 6) = "POINTS" Then
    69.         st = True
    70.   End If
    71. Loop
    72. Close #1
    73. lngLastRow = aSheet.Cells(Rows.Count, 2).End(xlUp).Row
    74. lngLastCol = aSheet.Cells(4, 2).End(xlToRight).Column
    75. Set RangeMax = Range(Cells(4, 1), Cells(lngLastRow, lngLastCol))
    76. RangeMax.Borders.LineStyle = xlContinuous
    77. Range(Cells(4, 1), Cells(4, lngLastCol)).Interior.Color = RGB(200, 200, 255)
    78. Range(Cells(5, 1), Cells(lngLastRow, 1)).Interior.Color = RGB(240, 240, 240)
    79. 'Range(Cells(5, 3), Cells(lngLastRow, 5)) = Format(Format, "###0.00")
    80. Range(Cells(3, 1), Cells(lngLastRow, lngLastCol)).Columns.AutoFit
    81. Range("B5").Select
    82. End Sub
    83. '    "Point ID" "Point Name" "Esting" "Northing" "Elevation" "Code"

     
    遵循导出数据
     
    如何设置格式单元格中的小数位数?
     
    如何调用文本文件进行编写?
     
    谢谢大家!
    回复

    使用道具 举报

    发表回复

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    • 微信公众平台

    • 扫描访问手机版

    • 点击图片下载手机App

    QQ|关于我们|小黑屋|乐筑天下 繁体中文

    GMT+8, 2025-3-4 11:11 , Processed in 1.443891 second(s), 72 queries .

    © 2020-2025 乐筑天下

    联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表