在特定行中通过用户表单使用VBA代码填充数据

伦迪·朱利安(Rendi Julian)

我在此VBA代码中有一个案例。

基本上,我有2张纸:

  • 贷款与资金
  • MUFG客户

我想做的是从A7507水平开始在Lending&Funding工作表中添加数据,在MUFG Client中也从A103开始添加数据。

这是我到目前为止的VBA代码

Private Sub CommandButton1_Click()
whichSheet = InputBox("In which sheet do you wish to enter data? Specify Sheet as Lending & Funding or MUFG Client only.", "Sheet Name")
If whichSheet = "" Then
MsgBox "You didn't specify a sheet!"
Exit Sub
End If

Worksheets(whichSheet).Activate
Dim lastrow
lastrow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
 
lastrow = lastrow + 1
Cells(lastrow, 1) = TextBox1
If Application.WorksheetFunction.CountIf(Range("A7507:A" & lastrow), Cells(lastrow, 1)) > 1 Then
MsgBox "Duplicate Data! Only Unique CIFs allowed", vbCritical, "Remove Data", Cells(lastrow, 1) = ""
ElseIf Application.WorksheetFunction.CountIf(Range("A7507:A" & lastrow), Cells(lastrow, 1)) = 1 Then
answer = MsgBox("Are you sure you want to add the record?", vbYesNo + vbQuestion, "Add Record")
If answer = vbYes Then
Cells(lastrow, 1) = TextBox1.Text
Cells(lastrow, 2) = TextBox2.Text
Cells(lastrow, 3) = TextBox3.Text
Cells(lastrow, 4) = TextBox4.Text
Cells(lastrow, 5) = TextBox5.Text
Cells(lastrow, 6) = TextBox6.Text
Cells(lastrow, 7) = TextBox7.Text
Cells(lastrow, 8) = TextBox8.Text
Cells(lastrow, 9) = TextBox9.Text
Cells(lastrow, 10) = TextBox10.Text
Cells(lastrow, 11) = TextBox11.Text
Cells(lastrow, 12) = TextBox12.Text
Cells(lastrow, 13) = TextBox13.Text
Cells(lastrow, 14) = TextBox14.Text
Cells(lastrow, 15) = TextBox15.Text
End If
End If
End Sub

Private Sub CommandButton2_Click()
Unload Me
End Sub

问题是,每当我在MUFG Client中添加数据时,它将填充第3行而不是103。

这是在“借贷和资金”中添加数据时发生的情况

在此处输入图片说明 在此处输入图片说明

有用!

但是当我在MUFG Client中添加数据时

在此处输入图片说明

而不是第103行,而是在第3行中添加了数据。它不起作用!

任何帮助将不胜感激。

提前非常感谢您。

CLR

您的要求有些混乱,因为我们看不到您的床单。但是,这是尝试将您的代码重写为:

  1. 不使用Activate
  2. 删除需要输入工作表名称。
  3. lastrow根据所选工作表强制为最小值。
  4. 如果用户不希望添加记录,则不添加记录的一部分。
  5. “写入调试窗口”为协助调试而编写的内容。

Private Sub CommandButton1_Click()

    Dim whichsheet As String
    whichsheet = InputBox("In which sheet do you wish to enter data? Enter 1 for Lending & Funding or 2 for MUFG Client", "Sheet selector")
    
    If whichsheet <> "1" And whichsheet <> "2" Then
       MsgBox "You didn't specify a valid sheet!"
       Exit Sub
    End If
    Dim firstusablerow As Long
    If whichsheet = "1" Then
       firstusablerow = 7507
       whichsheet = "Lending & Funding"
    Else
       firstusablerow = 103
       whichsheet = "MUFG Client"
    End If
    
    With Worksheets(whichsheet)
        Dim lastrow As Long
        lastrow = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
        
        If lastrow < firstusablerow Then lastrow = firstusablerow
        
        If Application.WorksheetFunction.CountIf(.Range("A" & firstusablerow & ":A" & lastrow), .Cells(lastrow, 1)) > 0 Then
            MsgBox "Duplicate Data! Only Unique CIFs allowed", vbCritical, "Remove Data", .Cells(lastrow, 1) = ""
        Else
            answer = MsgBox("Are you sure you want to add the record?", vbYesNo + vbQuestion, "Add Record")
            If answer = vbYes Then
                Debug.Print "Writing " & TextBox1.Text & " to row " & lastrow & " on sheet " & whichsheet
                .Cells(lastrow, 1) = TextBox1.Text
                .Cells(lastrow, 2) = TextBox2.Text
                .Cells(lastrow, 3) = TextBox3.Text
                .Cells(lastrow, 4) = TextBox4.Text
                .Cells(lastrow, 5) = TextBox5.Text
                .Cells(lastrow, 6) = TextBox6.Text
                .Cells(lastrow, 7) = TextBox7.Text
                .Cells(lastrow, 8) = TextBox8.Text
                .Cells(lastrow, 9) = TextBox9.Text
                .Cells(lastrow, 10) = TextBox10.Text
                .Cells(lastrow, 11) = TextBox11.Text
                .Cells(lastrow, 12) = TextBox12.Text
                .Cells(lastrow, 13) = TextBox13.Text
                .Cells(lastrow, 14) = TextBox14.Text
                .Cells(lastrow, 15) = TextBox15.Text
            End If
        End If
    End With
End Sub

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用php从表单中插入自动填充数据

来自分类Dev

填充数据框中缺失的行

来自分类Dev

DotNet.HighCharts-通过代码填充数据的PieChart

来自分类Dev

如何在Jbpm 5.4中获取表单填充数据

来自分类Dev

jQuery-在表单中填充数据的正确方法

来自分类Dev

单击编辑时未在表单中填充数据

来自分类Dev

R:使用数据框A中的值作为填充数据框B中的行之前的日期

来自分类Dev

使用其他表中的百分比向用户表填充数据

来自分类Dev

通过 R 中的特定列填充数组

来自分类Dev

通过R中的循环填充数据帧

来自分类Dev

使用另一列填充数据框中的某些行

来自分类Dev

使用JS对象中的数据填充数据表

来自分类Dev

使用JS对象中的数据填充数据表

来自分类Dev

如何通过迁移而不是使用转储通过Codeception在Laravel 4中正确填充数据库

来自分类Dev

从联接中填充数据

来自分类Dev

在VBA中隐藏用户表单以便使用数据

来自分类Dev

单击特定的DataGrid单元格后,查看具有填充数据的新表单

来自分类Dev

使用jQuery从多个Select控件中填充数据

来自分类Dev

使用XML中的列填充数据集

来自分类Dev

使用XML中的列填充数据集

来自分类Dev

Access 2002 / VBA-如何从查询中填充子表单以允许用户选择行

来自分类Dev

通过获取填充数据列表

来自分类Dev

使用for循环,无法通过用户输入使用双精度填充数组。C#

来自分类Dev

在数据框中填充数据

来自分类Dev

使用数据库中的特定行填充 tableview

来自分类Dev

根据从下拉列表中选择的值来填充数据库中的表单值

来自分类Dev

在Play框架中处理带有一些预填充数据的表单

来自分类Dev

在 vba 中从 QUEry 填充数组,然后将数据插入表中

来自分类Dev

Ruby on Rails / Ruby:用文件中的用户名填充数据库

Related 相关文章

  1. 1

    如何使用php从表单中插入自动填充数据

  2. 2

    填充数据框中缺失的行

  3. 3

    DotNet.HighCharts-通过代码填充数据的PieChart

  4. 4

    如何在Jbpm 5.4中获取表单填充数据

  5. 5

    jQuery-在表单中填充数据的正确方法

  6. 6

    单击编辑时未在表单中填充数据

  7. 7

    R:使用数据框A中的值作为填充数据框B中的行之前的日期

  8. 8

    使用其他表中的百分比向用户表填充数据

  9. 9

    通过 R 中的特定列填充数组

  10. 10

    通过R中的循环填充数据帧

  11. 11

    使用另一列填充数据框中的某些行

  12. 12

    使用JS对象中的数据填充数据表

  13. 13

    使用JS对象中的数据填充数据表

  14. 14

    如何通过迁移而不是使用转储通过Codeception在Laravel 4中正确填充数据库

  15. 15

    从联接中填充数据

  16. 16

    在VBA中隐藏用户表单以便使用数据

  17. 17

    单击特定的DataGrid单元格后,查看具有填充数据的新表单

  18. 18

    使用jQuery从多个Select控件中填充数据

  19. 19

    使用XML中的列填充数据集

  20. 20

    使用XML中的列填充数据集

  21. 21

    Access 2002 / VBA-如何从查询中填充子表单以允许用户选择行

  22. 22

    通过获取填充数据列表

  23. 23

    使用for循环,无法通过用户输入使用双精度填充数组。C#

  24. 24

    在数据框中填充数据

  25. 25

    使用数据库中的特定行填充 tableview

  26. 26

    根据从下拉列表中选择的值来填充数据库中的表单值

  27. 27

    在Play框架中处理带有一些预填充数据的表单

  28. 28

    在 vba 中从 QUEry 填充数组,然后将数据插入表中

  29. 29

    Ruby on Rails / Ruby:用文件中的用户名填充数据库

热门标签

归档