相关疑难解决方法(0)

在vba函数中绕过Max String大小?

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)

excel ontime vba excel-vba

17
推荐指数
3
解决办法
16万
查看次数

有没有办法将范围批量写入文本/CSV 文件?

我习惯使用 VBA 中的 write 命令将一系列单元格的内容(值)写入文本文件,例如:

write #myfile, Range("A1").value, Range("A2).value, Range("A3).value

是否存在更优雅和方便的内置方法来将整个范围直接转储到分隔文件,甚至可能一次转储多行?或者有人提出了定制的解决方案吗?我认为这将非常有用。

csv excel vba file

3
推荐指数
1
解决办法
2万
查看次数

使用VBA将本地HTML文件读入字符串

这感觉应该很简单.我的计算机上存有.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源的屏幕截图进行比较:

开始: 在此输入图像描述

在此输入图像描述

结束: 在此输入图像描述

在此输入图像描述

html io excel vba excel-vba

2
推荐指数
1
解决办法
2万
查看次数

一次将100个文本文件导入Excel

我有这个宏来批量导入同一文件夹中包含的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)

excel vba excel-vba

2
推荐指数
1
解决办法
1万
查看次数

标签 统计

excel ×4

vba ×4

excel-vba ×3

csv ×1

file ×1

html ×1

io ×1

ontime ×1