vba函数中字符串中可以使用的最大字符数为255.我正在尝试运行此函数
Var1= 1
Var2= 2
.
.
.
Var256 =256
RunMacros= "'Tims_pet_Robot """ & Var1 & """ , """ & Var2 & """ , """ ... """ & Var256 """ '"
Runat=TimeValue("15:00:00")
Application.OnTime EarliestTime:=Runat, Procedure:=RunMacros & RunMacros2 ', schedule:=True
Run Code Online (Sandbox Code Playgroud)
它在某个时间运行一个过程并将一堆变量传递给它.但是字符串太长了.
更新:遗憾的是,我确信它不是观察窗口.而且,它实际上并不是我正在处理的字符串的最大大小.它是vba函数中字符串的最大大小.
例如,此功能有效.
Sub test()
Dim RunAt As Date
Dim RunWhat As String
RunAt = Now + 0.00001
RunWhat = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" & _
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" & _
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" 'that makes 254 'a''s
Application.OnTime EarliestTime:=RunAt, Procedure:="'" & RunWhat & " 12'"
End Sub …Run Code Online (Sandbox Code Playgroud) 我习惯使用 VBA 中的 write 命令将一系列单元格的内容(值)写入文本文件,例如:
write #myfile, Range("A1").value, Range("A2).value, Range("A3).value
是否存在更优雅和方便的内置方法来将整个范围直接转储到分隔文件,甚至可能一次转储多行?或者有人提出了定制的解决方案吗?我认为这将非常有用。
这感觉应该很简单.我的计算机上存有.HTML文件,我想将整个文件读成字符串.当我尝试超级直接
Dim FileAsString as string
Open "C:\Myfile.HTML" for input as #1
Input #1, FileAsString
Close #1
debug.print FileAsString
Run Code Online (Sandbox Code Playgroud)
我没有得到整个文件.我只得到前几行(我知道即时窗口切断,但这不是问题.我绝对不会将整个文件放入我的字符串中.)我也尝试使用文件系统对象的替代方法,并且得到了类似的结果,只是这次有很多奇怪的字符和问号投入.这让我觉得它可能是某种编码问题.(虽然坦率地说,我并不完全明白这意味着什么.我知道有不同的编码格式,这可能会导致字符串解析出现问题,但这就是它.)
更一般地说,这是我真正想知道的:如何使用vba打开任何扩展名(可以在文本编辑器中查看)和长度(不超过VBA的字符串限制)的文件,以及确保我在基本文本编辑器中看到的任何字符都被读入字符串?(如果不能(轻松)完成,我当然会感谢被指向一种可能与.html文件一起使用的方法)非常感谢你的帮助
编辑:这是我使用建议的方法时会发生什么的一个例子.特别
Dim oFSO As Object
Dim oFS As Object, sText As String
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oFS = oFSO.OpenTextFile(Path)
Do Until oFS.AtEndOfStream
sText = oFS.ReadAll()
Loop
FileToString = sText
Set oFSO = Nothing
Set oFS = Nothing
End Function
Run Code Online (Sandbox Code Playgroud)
我将向您展示开头(通过消息框)和结束(通过即时窗口),因为两者在不同方面都很奇怪.在这两种情况下,我都会将它与chrome中显示的html源的屏幕截图进行比较:
开始:

结束:


我有这个宏来批量导入同一文件夹中包含的excel电子表格100+ .txt文件:
Sub QueryImportText()
Dim sPath As String, sName As String
Dim i As Long, qt As QueryTable
With ThisWorkbook
.Worksheets.Add After:= _
.Worksheets(.Worksheets.Count)
End With
ActiveSheet.Name = Format(Now, "yyyymmdd_hhmmss")
sPath = "C:\Users\TxtFiles\"
sName = Dir(sPath & "*.txt")
i = 0
Do While sName <> ""
i = i + 1
Cells(1, i).Value = sName
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;" & sPath & sName, Destination:=Cells(2, i))
.Name = Left(sName, Len(sName) - 4)
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False …Run Code Online (Sandbox Code Playgroud)