Excel 如何在VBA条件下保存.txt中的列
我是VBA的初学者,我想知道我的代码哪里出了问题Excel 如何在VBA条件下保存.txt中的列,excel,vba,Excel,Vba,我是VBA的初学者,我想知道我的代码哪里出了问题 Sub Worksheet_Calculate() Application.EnableEvents = False If code End If Application.EnableEvents = True: If Range("A3") <> Range("B4") Then Columns("B1:F1000
Sub Worksheet_Calculate()
Application.EnableEvents = False
If
code
End If
Application.EnableEvents = True:
If Range("A3") <> Range("B4") Then
Columns("B1:F10000").Select
ChDir "C:\Users\Francesco\Desktop"
ActiveWorkbook.SaveAs:="C:\Users\Francesco\Desktop\TXT.txt", _
FileFormat:=xlTextMSDOS, CreateBackup:=False
End If
End Sub
子工作表_计算()
Application.EnableEvents=False
如果
代码
如果结束
Application.EnableEvents=True:
如果范围(“A3”)范围(“B4”),则
列(“B1:F10000”)。选择
ChDir“C:\Users\Francesco\Desktop”
ActiveWorkbook.SaveAs:=“C:\Users\Francesco\Desktop\TXT.TXT”_
FileFormat:=xlTextMSDOS,CreateBackup:=False
如果结束
端接头
我的重点是:当条件如果Range(“A3”)Range(“B4”)
为真时,我希望vba创建一个.txt
我哪里错了
提前谢谢。试试这个:
Sub Worksheet_Calculate()
If Range("A3") <> Range("B4") Then
ActiveSheet.Range("B1:F10000").Select
ActiveWorkbook.SaveAs "C:\Users\Francesco\Desktop\TXT.txt", FileFormat:=xlTextMSDOS, CreateBackup:=False
End If
End Sub
子工作表_计算()
如果范围(“A3”)范围(“B4”),则
ActiveSheet.Range(“B1:F10000”)。选择
ActiveWorkbook.SaveAs“C:\Users\Francesco\Desktop\TXT.TXT”,文件格式:=xlTextMSDOS,CreateBackup:=False
如果结束
端接头
根据您的代码,您正在保存整个工作表。因此,我看不到选择列的任何意义。将wb作为工作簿,wb1作为工作簿
Dim wb as workbook, wb1 as workbook
set wb = activeworkbook
set wb1 = application.workbooks.new
If Range("A3") <> Range("B4") Then
wb.activate
Columns("B1:F10000").copy
wb1.activate
range("A1").paste
ChDir "C:\Users\Francesco\Desktop"
wb1.SaveAs:="C:\Users\Francesco\Desktop\TXT.txt", FileFormat:=xlTextMSDOS, CreateBackup:=False
call wb1.close(false)
End If
设置wb=activeworkbook
设置wb1=application.workbooks.new
如果范围(“A3”)范围(“B4”),则
wb.activate
列(“B1:F10000”)。副本
wb1.1激活
范围(“A1”)。粘贴
ChDir“C:\Users\Francesco\Desktop”
wb1.SaveAs:=“C:\Users\Francesco\Desktop\TXT.TXT”,文件格式:=xlTextMSDOS,CreateBackup:=False
调用wb1.close(错误)
如果结束
未测试。试试这个
Function SimpleWriteToText(ByVal FileName, ByVal strText, Optional Wtype = "output")
If Wtype = "output" Then
Open FileName For Output As #1
Else
Open FileName For Append As #1
End If
Print #1, strText;
Close #1
End Function
用法
如果您只想将一列中的文本保存为txt文件,更简单的方法是将该列复制到新文件,然后将该文件保存为txt文件。谢谢您的回答。我将编写并测试您的代码。非常感谢您,它正在工作!!!:)我有个问题。为什么文件太大(列为5,行为10.000)?如何以轻松的方式保存它?这是因为您保存的是整个工作表,而不是所选的列。一种方法是将这些列复制并粘贴到新工作簿上,然后将该工作簿另存为文本文件。好的,非常感谢你的回答。我要这么做。@Francesco。。。如果它对你有用,就接受它作为答案。对于任何其他正在寻找答案的用户,请参见。谢谢您的答案。谢谢您的答案。
SimpleWriteToText ThisWorkbook.path & "\Text.txt", "Hello" ' Append
SimpleWriteToText ThisWorkbook.path & "\Text.txt", "Hello", "output" ' NewOne