Vih*_*har 3 excel vba copy range excel-vba
我想在VBA中运行执行以下操作的代码:
我到现在所拥有的是:
Sub CreateAfile()
Dim pth As String
pth = ThisWorkbook.path
Dim fs As Object
Set fs = CreateObject("Scripting.FileSystemObject")
Dim a As Object
Set a = fs.CreateTextFile(pth & "\Kommentar.txt", True)
Dim sh As Worksheet
Set sh = ThisWorkbook.Sheets("Kommentar")
Dim rng As Range
Set rng = sh.UsedRange
a.WriteLine (rng)
a.Close
End Sub
Run Code Online (Sandbox Code Playgroud)
我得到一个运行时错误'13'不匹配,如行"a.WriteLine(rng)",该函数不接受要写入的范围.
有任何想法吗?谢谢!
由于您的范围可能由多个单元格组成,因此您必须遍历它们以将所有文本转换为字符串变量.如果使用Variant变量,则可以复制值并自动获取具有单元格中所有数据的正确尺寸的数组,然后循环并复制文本:
Function GetTextFromRangeText(ByVal poRange As Range) As String
Dim vRange As Variant
Dim sRet As String
Dim i As Integer
Dim j As Integer
If Not poRange Is Nothing Then
vRange = poRange
For i = LBound(vRange) To UBound(vRange)
For j = LBound(vRange, 2) To UBound(vRange, 2)
sRet = sRet & vRange(i, j)
Next j
sRet = sRet & vbCrLf
Next i
End If
GetTextFromRangeText = sRet
End Function
Run Code Online (Sandbox Code Playgroud)
通过a.WriteLine (rng)使用以下代码替换代码来调用代码中的函数:
Dim sRange As String
sRange = GetTextFromRangeText(rng)
Call a.WriteLine(sRange)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17258 次 |
| 最近记录: |