用vba实现 从一组单元格中取出文本

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用vba实现 从一组单元格中取出文本相关的知识,希望对你有一定的参考价值。

要取出单元格A1到C2的内容(如图):

要取出的文本为如下形式:
1 2 3
4 5 6
除了选定、复制再粘贴,还有什么不占用剪贴板的方法
用EXCEL VBA编写代码

Sub 转文本()
Dim rng As Range, Hrng As Range
endrow = ActiveSheet.UsedRange.Rows.Count
ipath = ThisWorkbook.Path & "\" & ThisWorkbook.Name & "-" & ActiveSheet.Name & ".txt"
Open ipath For Output As #1
For Each rng In ActiveSheet.UsedRange.Rows
arr = WorksheetFunction.Transpose(WorksheetFunction.Transpose(rng))
istr = Join(arr, " ")
Print #1, istr
Next
Close #1
End Sub
参考技术A Sub test()
Dim rn As Range, str As String
For Each rn In Sheet1.Range("A1:C3")
str = str & rn
Next rn
MsgBox str
End Sub

使用VBA向单元格填充文本

我想从一张纸上选择一个值并将其放在另一张纸上的单元格中。

我的脚本确定了正确的值,但我无法将其输入工作表。

此函数在以下摘录的第六行中返回!Value错误:

Function PrintTest(Cell)
Dim iRow As Integer
Dim bs As Worksheet
Set bs = ThisWorkbook.Sheets("By System")
iRow = Cell.Row
bs.Cells(iRow, 6).Value = "Hello World"
End Function

我也尝试过使用.Text

注:在实际的脚本中,文本将从其他工作表中播种,并将其存储在变量中。我不希望将相同的文本放入许多不同的单元格中。

更新:Cell从Excel电子表格作为空白单元格G4传递。 Row定义为4。要调用这些函数,我已经在名为“按系统”的Excel工作表中键入“ = PrintTest(G4)”。

更新2:Scott Holtzman在评论中回答了这个问题。您无法通过从单元内部调用的UDF写入单元。解决方法是通过按钮调用它。

答案

使用Cells(Row,Col).Value =“ Some text”设置单元格值如果您的工作表处于活动状态,则不需要完全限定该地址。如果您激活工作表,则可以一直使用单元格。如果必须从其他工作表中检索数据,则必须用工作表名称来限定地址,即Sheets(“ My Sheet”)。Cells(Row,Col).Value。

同样,您的代码具有Row = Cell.Row,但您并不是在说什么单元格处于活动状态。在这种情况下,您将获得一些任意值。因此,这可能就是您的错误所在。 Cell.Row = ????? Row也是一个很好的词。使用intRow之类的变量。例如intRow = 25。 Cells(intRow,6).Value =“我的细胞”。如果光标在单元格上,则可以说intRow = ActiveCell.Row。

[当您遇到这样的问题时,请在代码中设置一个断点(在您的示例中为Set语句)。 Thenm运行您的代码。当它在set语句处停止时,您可以按F8键一次遍历一行并检查您的变量。然后,您将看到Row是真正的数字还是垃圾。

希望有所帮助

以上是关于用vba实现 从一组单元格中取出文本的主要内容,如果未能解决你的问题,请参考以下文章

vba在单元格中生成的公式如何变成文本值

vba去掉单元格中的'

基于固定宽度的单元格中 MID/拆分文本的 Excel VBA 代码

Excel VBA 如何把单元格中的多行文字输出到txt中

Excel VBA 将值从一张表移动到另一张表

excel vba如何查询某单元格所在行