Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.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
Vba 如何使用数据输入表单填写不同的excel表格?_Vba_Excel - Fatal编程技术网

Vba 如何使用数据输入表单填写不同的excel表格?

Vba 如何使用数据输入表单填写不同的excel表格?,vba,excel,Vba,Excel,我需要创建一个Excel解决方案来记录有关家庭的数据 表单应生成唯一代码(自动数字)以标识该记录。在这里,我询问父母的姓名、姓氏和出生日期。这记录在一张表中(称为父项) 一个家庭可以包含多个孩子,因此我认为这必须记录在另一张纸上(称为儿童),保持与父母的关系 我能够将每个不同的字段保存到相应的单元格(映射)。下面是我用来获取它的代码: Private Sub cmdSave_Click() ActiveWorkbook.Sheets("Parents").Activate Range("B2")

我需要创建一个Excel解决方案来记录有关家庭的数据

  • 表单应生成唯一代码(自动数字)以标识该记录。在这里,我询问父母的姓名、姓氏和出生日期。这记录在一张表中(称为
    父项
  • 一个家庭可以包含多个孩子,因此我认为这必须记录在另一张纸上(称为
    儿童
    ),保持与父母的关系
  • 我能够将每个不同的字段保存到相应的单元格(映射)。下面是我用来获取它的代码:

    Private Sub cmdSave_Click()
    ActiveWorkbook.Sheets("Parents").Activate
    Range("B2").Select
    Do
    If IsEmpty(ActiveCell) = False Then
        ActiveCell.Offset(1, 0).Select
    End If
    Loop Until IsEmpty(ActiveCell) = True
    
    'Father
    ActiveCell.Value = txtFatherFN.Text
    ActiveCell.Offset(0, 1) = txtFatherSN.Text
    ActiveCell.Offset(0, 2) = txtFatherLN.Text
    ActiveCell.Offset(0, 3) = txtFatherBirthDay.Text
    'Mother
    ActiveCell.Offset(0, 4) = txtMotherFN.Text
    ActiveCell.Offset(0, 5) = txtMotherSN.Text
    ActiveCell.Offset(0, 6) = txtMotherLN.Text
    ActiveCell.Offset(0, 7) = txtMotherBirthDay.Text
    Range("B2").Select
    End Sub
    
    所以,我需要一种方法来生成代码并保持与孩子们的关系。
    欢迎任何帮助

    好的。对我来说,这一天过得很慢。这是为您编写的代码。我还对您的原始代码进行了一些清理,以提高效率

    Option Explicit
    
    Private Sub cmdSave_Click()
    
    Dim wks As Worksheet
    
    Set wks = Sheets("Parents")
    
    'assumes headers in First Row, ID is Column A
    With wks
    
        'find next empty row
        Dim lngRow As Long
        lngRow = .Cells(Rows.Count, 1).End(xlUp).Offset(1).Row
    
        'find next unique Id
        Dim lngID As Long
        lngID = Application.WorksheetFunction.Max("A:A") + 1
    
        'id
        .Cells(lngRow, 1) = lngID
        'Father
        .Cells(lngRow, 2) = txtFatherFN.Text
        .Cells(lngRow, 3) = txtFatherSN.Text
        .Cells(lngRow, 4) = txtFatherLN.Text
        .Cells(lngRow, 5) = txtFatherBirthDay.Text
        'Mother
        .Cells(lngRow, 6) = txtFatherFN.Text
        .Cells(lngRow, 7) = txtFatherSN.Text
        .Cells(lngRow, 8) = txtFatherLN.Text
        .Cells(lngRow, 9) = txtFatherBirthDay.Text
    End With
    
    Set wks = Sheets("Children")
    
    With wks
    
        'find next empty row
        lngRow = .Cells(Rows.Count, 1).End(xlUp).Offset(1).Row
    
        'need to adjust the for statement for however you collect your children in your form
        For Each Child In Children 'this is an example only to illustrate. You will need to change Child / Children to the objects used to collect the children info.
            .Cells(lngRow, 1) = Child
            lngRow = lngRow + 1
        Next
    
    End With
    
    
    End Sub
    

    你已经向我们展示了你为父母所做的努力,看起来很有效,但是你为孩子所做的努力呢?请告诉我们您在哪些方面尝试过,哪些方面失败了,我们可以帮助您进行调整。