Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将一系列值复制到外部.txt行VBA中_Vba_Excel_Copy_Copy Paste - Fatal编程技术网

将一系列值复制到外部.txt行VBA中

将一系列值复制到外部.txt行VBA中,vba,excel,copy,copy-paste,Vba,Excel,Copy,Copy Paste,我有一个Excel工作表,需要将一系列值复制到给定行的外部.txt文件中。(例如,复制单元格A1:A7的值,并将其粘贴到预先存在的.txt文件的第100行。我可以选择值的范围,但无法粘贴到特定行中。有什么想法吗?将您的工作分解为问题部分,您将看到您的下一个任务(基于所述信息)是定位文本文件中的一行。您可以使用vbCr作为标记来解析文本文件吗?然后在第100次这样的vbCr之后,您要用复制的值覆盖上一个文本字符串。您没有显示任何进入文本文件的代码…感谢您的回复,这对我来说很好。但是我现在正在尝试运

我有一个Excel工作表,需要将一系列值复制到给定行的外部
.txt
文件中。(例如,复制单元格A1:A7的值,并将其粘贴到预先存在的
.txt
文件的第100行。我可以选择值的范围,但无法粘贴到特定行中。有什么想法吗?

将您的工作分解为问题部分,您将看到您的下一个任务(基于所述信息)是定位文本文件中的一行。您可以使用vbCr作为标记来解析文本文件吗?然后在第100次这样的vbCr之后,您要用复制的值覆盖上一个文本字符串。您没有显示任何进入文本文件的代码…感谢您的回复,这对我来说很好。但是我现在正在尝试运行exe这是我写的代码:Dim source As String source=“C:\test\u run\convtecg2.exe”Shell(source)我遇到的问题是,程序应该将一个名为“geo”的文件作为输出,而该文件没有创建(看起来程序从未启动,因为它启动并立即关闭)有什么想法吗?我不知道这是什么。EXE会这样做,这将超出问题范围。抱歉…如果我的答案对你有用,那么请考虑将它标记为已接受的答案。你在新的问题中讨论EXE。有点可能对EXE问题有帮助。
This is a hack:

Public Const FPath = "C:\Temp\YourFile.txt"

Sub test()
Dim fso As New Scripting.FileSystemObject
Dim txtFile As Scripting.TextStream

Dim val As String
Dim valArr() As Variant, v As Variant
valArr = Sheet1.Range("A1:A7").Value2

Dim count As Long
For count = LBound(valArr) To UBound(valArr)
    'choose your delimiter, I used space
    val = val & IIf(count = LBound(valArr), "", " ") & valArr(count, 1)
Next count

Set txtFile = fso.OpenTextFile(FPath, ForReading, False)

Dim txtArr() As String
txtArr = Split(txtFile.ReadAll, vbCrLf)
txtFile.Close

If UBound(txtArr) >= 4 Then 'I am using 5 instead of 100 - change as necessary
    txtArr(4) = val
    're-write file
    Set txtFile = fso.OpenTextFile(FPath, ForWriting, False)
    txtFile.Write Join(txtArr, vbCrLf)
    txtFile.Close
Else
    'append to file if it has less then 5 lines
    Set txtFile = fso.OpenTextFile(FPath, ForAppending, False)
    txtFile.Write val
    txtFile.Close
End If

Set txtFile = Nothing
End Sub