VBA创build日志文件

你好,你可以帮助我与VBA的代码吗? 我想在单元格(“C2”和“C3”+date和时间)的文本中创build一个日志文件,当我按下button“zadat”谢谢

我的代码实现是:

第一单元

Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Sub zadat() Dim reg, check As String Dim i, j, done As Integer reg = Cells(2, 3).Value check = Cells(4, 3).Value If check = "True" Then i = 2 j = 1 done = 0 Do While Sheets("data").Cells(i, j) <> "" If Sheets("data").Cells(i, j) = reg Then vytisteno = ZkontrolovatAVytiskoutSoubor() done = Sheets("data").Cells(i, j + 3) done = done + 1 Sheets("data").Cells(i, j + 3) = done Exit Do End If i = i + 1 Loop Else MsgBox ("Opravit, špatný štítek!!!") End If Cells(3, 3) = "" Cells(3, 3).Select ActiveWindow.ScrollRow = Cells(1, 1).row End Sub 

模块2:

 Option Explicit Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _ ByVal hwnd As Long, _ ByVal lpOperation As String, _ ByVal lpFile As String, _ ByVal lpParameters As String, _ ByVal lpDirectory As String, _ ByVal nShowCmd As Long) As Long Public Function PrintThisDoc(formname As Long, FileName As String) On Error Resume Next Dim x As Long x = ShellExecute(formname, "Print", FileName, 0&, 0&, 3) End Function Public Function ZkontrolovatAVytiskoutSoubor() As Boolean Dim printThis Dim strDir As String Dim strFile As String strDir = "W:\Etikety\Štítky\Krabice\Testy" strFile = Range("C2").Value & ".lbe" If Not FileExists(strDir & "\" & strFile) Then MsgBox "soubor neexistuje!" ZkontrolovatAVytiskoutSoubor = False Else printThis = PrintThisDoc(0, strDir & "\" & strFile) ZkontrolovatAVytiskoutSoubor = True End If End Function Private Function FileExists(fname) As Boolean 'Returns TRUE if the file exists Dim x As String x = Dir(fname) If x <> "" Then FileExists = True _ Else FileExists = False End Function 

如果你不想使用FSO,只有一个简单的解决scheme,只使用VBA语句: 打开 , 打印#和closures :

 Sub Log2File(Filename As String, Cell1, Cell2) Dim f As Integer f = FreeFile Open Filename For Append Access Write Lock Write As #f Print #f, Now, Cell1, Cell2 Close #f End Sub 

我已经把文件名和单元格作为可重用的目的的参数。 我也使用默认(本地)格式,但可以很容易地更改。 请注意,您不必检查文件是否存在,如果文件不存在,将会创build该文件。

尝试这个。 下面的代码会每次创build一个新的日志文件

 Public Function LogDetails() Dim fso As Object Set fso = CreateObject("Scripting.FileSystemObject") Dim logFile As Object Dim logFilePath As String Dim logFileName As String 'Replace 'TestLog' with your desired file name logFileName = "TestLog" & ".txt" myFilePath = "C:\Users\..\Desktop\" & logFileName 'Modify the path here If fso.FileExists(myFilePath) Then Set logFile = fso.OpenTextFile(myFilePath, 8) Else ' create the file instead Set logFile = fso.CreateTextFile(myFilePath, True) End If logFile.WriteLine "[" & Date & " " & Time & "] " & Worksheet("yoursheetnamehere").Cells(2, 3) & " " & Worksheet("yoursheetnamehere").Cells(3, 3) logFile.Close ' close the file End Function