相关疑难解决方法(0)

如何使用Excel VBA创建外部日志?

代码已更新,以引用以下更改.

这个日志系统为Excel创建了一个名为Log.txt的外部文档,它将在log.txt文件中创建一个如下所示的行:

11:27:20 AM Matthew Ridge从ss改为N $ 55

这不会告诉您是否有人在工作表中输入了新的代码行,但如果代码需要答案,它将告诉您答案所在的单元格.下面的代码适用于Mac和PC系统的组合.如果人们发现它没有请说.

这段代码是在这里的人和其他形式的帮助下创建的,所以我不能单独拥有该文件,但我可以拥有这个概念.所以感谢那些帮助过的人,没有这个,我认为现在不会有一个可行的Excel日志系统;)

顺便说一下,在有人吓坏了并询问这段代码在哪里之前,对于普通/新的最终用户来说这并不明显.您需要转到Developer选项卡打开它,单击Visual Basic,当新窗口打开时,查找Microsoft Excel Object; 在该文件夹下应该是您的工作簿.您可以将其放在ThisWorkbook下或任何工作表内,方法是双击您希望代码所在的工作表.

在右侧面板上打开工作表后,您将看到Option Explicit,如果不这样做,最好通过确保选中Require Variable Declaration来激活它.这可以再次在Visual Basic窗口中找到,并遵循以下路径:

工具 - > 选项 - > 编辑器.

如果它被检查,那么你不用担心,如果没有,那么你检查它.Option Explicit对你的代码来说是一件好事,它迫使你声明变量,这是一个好的做法.

验证完成后,您可以复制下面的代码,将其粘贴到工作簿中,或根据您的需要粘贴到特定的工作表中.

版本2.01

Option Explicit
Dim PreviousValue

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim sLogFileName As String, nFileNum As Long, sLogMessage As String

    sLogFileName = ThisWorkbook.Path & Application.PathSeparator & "Log.txt"

 On Error Resume Next ' Turn on error handling
    If Target.Value <> PreviousValue Then
        ' Check if …
Run Code Online (Sandbox Code Playgroud)

excel events logging vba excel-vba

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

FileSystemObject.CreateFolder用于创建目录和子目录

我想用以下代码创建一个目录和一个子目录:

Public fso As Scripting.FileSystemObject
Set fso = New Scripting.FileSystemObject
fso.CreateFolder ("C:\Users\<my_username>\DataEntry\logs")
Run Code Online (Sandbox Code Playgroud)

我正在尝试创建嵌套目录.在这种情况下,该DataEntry目录将不存在,所以基本上我想创建2个目录,DataEntry\logsC:\Users\<username>

如果我输入命令提示符,我可以创建该目录而mkdir没有任何问题.但是,我根本无法让VBA创建该文件夹,我得到:

Run-time error '76':

Path not found                        
Run Code Online (Sandbox Code Playgroud)

我使用的是Excel VBA 2007/2010

excel vba excel-vba

8
推荐指数
2
解决办法
9464
查看次数

从电子表格数据创建文件夹层次结构

我有几个电子表格,其中的数据从左到右组织,我想从中创建文件夹。每条记录都是完整的,没有空格,除非那是行的末尾,所以我正在寻找以下内容:

Col1     Col2     Col3
------   ------   ------
Car      Toyota   Camry
Car      Toyota   Corolla
Truck    Toyota   Tacoma
Car      Toyota   Yaris
Car      Ford     Focus
Car      Ford     Fusion
Truck    Ford     F150

Car
    Toyota
        Camry
        Corolla
        Yaris
    Ford
        Focus
        Fusion
Truck
    Toyota
        Tacoma
    Ford
        F-150
...
Run Code Online (Sandbox Code Playgroud)

唯一需要注意的是,我有大约 15 列,有些条目在第 3 或 4 列结束,因此只需要创建那些文件夹。

任何人都可以帮助处理这个请求吗?我对编程并不陌生,但我对 VBA 还是很陌生。

谢谢!

directory excel vba hierarchy

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

在Excel VBA中"CleanName不清理"?

我正在更新问题以显示我已经拥有的内容,然后从这里添加行...

Function CleanName(strName As String) As String
'will clean part # name so it can be made into valid folder name
'may need to add more lines to get rid of other characters

    CleanName = Replace(strName, "/", "")
    CleanName = Replace(CleanName, "*", "")
    CleanName = Replace(CleanName, ".", "")
    CleanName = Replace(strName, "\", "")

End Function
Run Code Online (Sandbox Code Playgroud)

regex string excel vba excel-vba

0
推荐指数
1
解决办法
1069
查看次数

标签 统计

excel ×4

vba ×4

excel-vba ×3

directory ×1

events ×1

hierarchy ×1

logging ×1

regex ×1

string ×1