如何将文本框值发送到Excel工作表?

时间:2015-02-05 02:17:07

标签: vba excel-2010

Private Sub Command3_Click()
Dim oExcel As Object
Dim oBook As Object
Dim oSheet As Object

'Start a new workbook in Excel
Set oExcel = CreateObject("Excel.Application")
Set oBook = oExcel.Workbooks.Add


'Add data to cells of the first worksheet in the new workbook
Set oSheet = oBook.Worksheets(1)
oSheet.Cells(1, 1).Value = Text1.Text
oSheet.Cells(1, 2).Value = "First Name"
oSheet.Cells("A1:B1").Font.Bold = True
oSheet.Cells(2, 1).Value = "Doe"
oSheet.Cells(2, 2).Value = "John"

'Save the Workbook and Quit Excel
oBook.SaveAs "C:\Book1.xls"
oExcel.Quit
End Sub

第一次VB编码我已经完成了16年......所以对我来说很容易...... 好的,这是一个通用代码,但想法是一样的。在哪里说:' oSheet.Cells(1,1).Value = Text1.Text'返回错误"找不到方法或元成员"。我怎样才能解决这个问题?我已经将名称从Text1更改为其他Dim(新名称)作为字符串,对象等等(我绝望了,好吗?!)但它继续给我同样的错误。我试图在网上看,但没有真正解释为什么会发生这种情况。 我知道这对你们很多人来说是一个愚蠢的问题,但请记住,我们中的一些人必须从某个地方开始,帮助一点。 :)谢谢大家!

哦,我打算做的是一个vb6表单,它会将文本框1-15中的输入数据记录到excel,之后找到下一个空行来记录其数据。设置oBook = oExcel.Workbooks.Add的部分会像你一样说Open(" blahblah.xlsx")。所以每次都不会继续添加新文件。

1 个答案:

答案 0 :(得分:2)

请改用oSheet.Cells(1, 1).Value = Shapes(1).TextFrame.Characters.Text。假设工作表上只有一个形状,它是一个文本框。另外,您需要使用类似

之类的东西遍历工作表上的所有形状
Sub LoopShapes()
    Dim shp As Excel.Shape
    For Each shp In Shapes
        If shp.Type = msoTextBox Then
            Debug.Print shp.TextFrame.Characters.Text
        End If
    Next shp
End Sub

如果这对你有用,请告诉我。