首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Excel VBA用户表单将数据添加到新行中,在标题下面

Excel VBA用户表单将数据添加到新行中,在标题下面
EN

Stack Overflow用户
提问于 2016-01-25 08:41:19
回答 3查看 1.6K关注 0票数 0

我试图在标题下面插入一个新行,以插入Userform的数据。

我的当前代码在第4行中添加了新的数据,但是它没有在第4行中添加新的行,而是覆盖了第4行中的数据。

代码语言:javascript
复制
Private Sub KnopOpslaan_Click()

        Dim ws As Worksheet
        Set ws = Worksheets("Data")

        'Regel invoegen op rij 4.
            If Range("a4") <> "" Then
            Rows("4:4").Select
            Selection.Insert shift:=xlDown
            End If

        'Formulier doorzetten naar het excel bestand.
            ws.Cells(4, 1).Value = VoorraadOpnameTA.Datumbox.Value
            ws.Cells(4, 2).Value = VoorraadOpnameTA.Tijdbox.Value
            ws.Cells(4, 3).Value = VoorraadOpnameTA.Opnemer.Value
End Sub
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-01-25 09:05:31

Selection.Insert shift:=xlDown这一行中有问题。将线路替换为

Selection.Insert shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

这是完整的密码。

代码语言:javascript
复制
 Dim ws As Worksheet
    Set ws = Worksheets("Data")

    'Regel invoegen op rij 4.
 If Range("a4") <> "" Then
        Rows("4:4").Select
        Selection.Insert shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

    'Formulier doorzetten naar het excel bestand.
        ws.Cells(4, 1).Value = VoorraadOpnameTA.Datumbox.Value
        ws.Cells(4, 2).Value = VoorraadOpnameTA.Tijdbox.Value
        ws.Cells(4, 3).Value = VoorraadOpnameTA.Opnemer.Value
 End If
票数 0
EN

Stack Overflow用户

发布于 2016-01-25 09:08:54

在将数据写入第4行时,要对行号进行硬编码。因此,它的更新值总是在Row4中。如果您实际上正在考虑在Row4下面插入行并将数据写入Row5,那么请尝试如下。代码将在Row4下面插入行,并始终将数据插入到Row5

代码语言:javascript
复制
Private Sub KnopOpslaan_Click()

    Dim ws As Worksheet
    Set ws = Worksheets("Data")

    'Regel invoegen op rij 4.
        If Range("a4") <> "" Then
        Rows("4:4").Select
        Selection.Insert shift:=xlDown
        End If

    'Formulier doorzetten naar het excel bestand.
        ws.Cells(5, 1).Value = VoorraadOpnameTA.Datumbox.Value
        ws.Cells(5, 2).Value = VoorraadOpnameTA.Tijdbox.Value
        ws.Cells(5, 3).Value = VoorraadOpnameTA.Opnemer.Value
End Sub
票数 0
EN

Stack Overflow用户

发布于 2016-01-25 09:09:48

最简单的方法是将数据格式化为工作表上的表,这使其成为一个listobject,然后可以使用

代码语言:javascript
复制
ws.ListObjects("name").ListRows.Add 1

这将插入在标头下方的一行,而不管表在工作表上的实际位置。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34988245

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档