使用VBA向单元格填充文本

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用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实现 从一组单元格中取出文本

使用 VBA 进行颜色填充,以单元格值为条件

使用VBA进行颜色填充,有条件地使用单元格值

VBA对指定单元格填充颜色并且赋值

vba中如何将单元格内容强制转换为文本类型?