Costinbos77 发表于 2022-7-6 22:22:58

C++或VBA

你好,
 
我想制作一个可执行程序(.exe),带有一个包含一些按钮的窗体(窗口)和一个Excel单元格区域(13列和行变量,我用复制/粘贴的方法填充它们)。
 
什么编程语言更容易学习:C++还是VBA?
我只使用LISP(ActiveX)。
 
 
提前谢谢。

dbroada 发表于 2022-7-6 22:27:56

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

Costinbos77 发表于 2022-7-6 22:30:15

谢谢你的回复。我读了一点C++手册,但很难。
杀死我的语法和声明函数和变量。

MSasu 发表于 2022-7-6 22:33:30

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

Costinbos77 发表于 2022-7-6 22:39:21

我想制作一个程序,以特殊格式导入idx文件(文本):
 
 
 
 
读取文件后,按数据列排列单元格窗口。
在这里,我希望能够添加或删除信息行。
 
最后,你可以特别节省。idx格式。
 
我认为它在Excel中不起作用。

hugha 发表于 2022-7-6 22:40:25

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

BIGAL 发表于 2022-7-6 22:45:16

下载Microsoft Visual Studio的免费副本作为起点。这取代了旧的Visual basic编译器VB6等,但现在重点放在。网
 
DBRODA您可以从VBA生成exe,只需使用正确的编译器。我放弃了Visual studio,现在要学习很多东西,但我知道可以将VBA导入其中并编译。

Costinbos77 发表于 2022-7-6 22:48:53

谢谢你们的回答。
 
我和其他朋友讨论过,结论是一样的:
 

MSasu 发表于 2022-7-6 22:52:54

正如BIGAL所指出的,有一个免费版本。Net pack的组件。只需搜索VB。Net或C#。Net Express-安装后需要激活注册。然而,如果我记得清楚的话,这种用法是不允许用于商业目的的。

Costinbos77 发表于 2022-7-6 22:54:54

我已经从Excel开始用VBA写东西了,这是合理的。
 
 


Sub LoadIDX()
   Dim aSheet As Worksheet
   Dim lngLastRow As Long, lngLastCol As Long
   Dim i, j, k, l As Integer
   Dim st, en, st1, en1 As Boolean
   Dim spli() As String
   Dim MyDate
   MyDate = Date    ' MyDate contains the current system date.

   aIDXfile = ThisWorkbook.Application.GetOpenFileName("IDX File to Open(*.idx),*.idx")
   If aIDXfile = False Then
      Exit Sub
   End If

ActiveSheet.PageSetup.CenterHeader = "&D&B&ITime:&I&B&T"
ActiveWorkbook.Sheets.Add After:=Worksheets(Worksheets.Count) ' xlWorksheet ' Add New Sheet
Set aSheet = ThisWorkbook.ActiveSheet
   aSheet.Activate
   Cells(1, 1).Interior.ColorIndex = 3 ' Culoare Celula
'    Range(Cells(1, 1), Cells(Rows.Count, Columns.Count)).Value = ""
'    Range(Cells(1, 1), Cells(Rows.Count, Columns.Count)).Borders.LineStyle = xlNone
'    Range(Cells(1, 1), Cells(Rows.Count, Columns.Count)).Interior.ColorIndex = 0

   aSheet.Cells(3, 4) = "Data :"
   Cells(3, 4).Font.ColorIndex = 3
   aSheet.Cells(3, 5) = Format(Date, "yyyy.mm.dd/") + Format(Time, "hh.mm.ss") 'Date
   Cells(3, 5).Font.ColorIndex = 3 ' 3=Rosu , 1=Negru

   aSheet.Cells(2, 2) = "Fisierul :"
   Cells(2, 2).Font.ColorIndex = 4 ' 4=Verde , 1=Negru
   aSheet.Cells(2, 3) = aIDXfile
   aSheet.Cells(4, 1) = "ID"
   aSheet.Cells(4, 2) = "Nume"
   aSheet.Cells(4, 3) = "Est [ m ]"
   aSheet.Cells(4, 4) = "Nord [ m ]"
   aSheet.Cells(4, 5) = "Cota [ m ]"
   aSheet.Cells(4, 6) = "Cod"

   l = 1
   While l < 9
   aSheet.Cells(4, l + 6) = "Atribut " + Format(l)
   l = l + 1
   Wend    ' End While loop when Count

   ActiveWindow.SplitRow = 3.5 ' Impartire Pagina
   Open aIDXfile For Input As #1    ' Open file for input.
i = 5
st = False
en = False
Do While Not EOF(1)    ' Loop until end of file.
   Line Input #1, mystring
   mystring = LTrim(mystring)

If Left(mystring,= "THEMINFO" Then
      en = True
End If
   If st And en = False Then
      spli = Split(mystring, ",")
      Cod = spli(2)
'         For j = 1 To UBound(spli) '+ 1
'         vastr = Replace(spli(j - 1), Chr(34), "")
'         vastr = Replace(vastr, ";", "")
'         aSheet.Cells(i, j).Value = vastr
          aSheet.Cells(i, 1).Value = spli(0) ' Nr
          aSheet.Cells(i, 2).Value = spli(1) ' Nm
          aSheet.Cells(i, 3).Value = spli(3) ' E
          aSheet.Cells(i, 4).Value = spli(4) ' N
          aSheet.Cells(i, 5).Value = spli(5) ' Z
         If Cod <> "" Then
          aSheet.Cells(i, 6).Value = Cod
         End If ' Cod
'         Next j
      i = i + 1
   End If
If Left(mystring, 6) = "POINTS" Then
      st = True
End If

Loop
Close #1
lngLastRow = aSheet.Cells(Rows.Count, 2).End(xlUp).Row
lngLastCol = aSheet.Cells(4, 2).End(xlToRight).Column
Set RangeMax = Range(Cells(4, 1), Cells(lngLastRow, lngLastCol))
RangeMax.Borders.LineStyle = xlContinuous
Range(Cells(4, 1), Cells(4, lngLastCol)).Interior.Color = RGB(200, 200, 255)
Range(Cells(5, 1), Cells(lngLastRow, 1)).Interior.Color = RGB(240, 240, 240)
'Range(Cells(5, 3), Cells(lngLastRow, 5)) = Format(Format, "###0.00")
Range(Cells(3, 1), Cells(lngLastRow, lngLastCol)).Columns.AutoFit
Range("B5").Select
End Sub
'    "Point ID" "Point Name" "Esting" "Northing" "Elevation" "Code"



 
遵循导出数据
 
如何设置格式单元格中的小数位数?
 
如何调用文本文件进行编写?
 
谢谢大家!
页: [1] 2
查看完整版本: C++或VBA