VBA - bật lên các lệnh để điền chi tiết trên bảng tính


1

Tôi có thể tìm thành công một hàng cụ thể (bằng cách tham chiếu trong cột A), sao chép hàng đó và dán bên dưới bản gốc.

Bây giờ tôi muốn khả năng yêu cầu thông tin để điền vào một số ô nhất định. Ví dụ.

  1. Tìm hàng 7, bản sao và dán vào Hàng 8.
  2. Sau đó nhận được thông báo "Cập nhật thông tin công việc" và sau đó sẽ nhập thông tin đó vào Cell G8.

Mẫu này luôn giống nhau, tức là cập nhật cột G trong các hàng được dán vào.

Bất kỳ trợ giúp nào cũng được đánh giá rất cao.


1
Tôi khuyên bạn nên đặt câu hỏi về VBA tại Stack Overflow thay vì Super USer nếu bạn muốn trợ giúp về mã hóa. Cờ của tôi cho các Mod để chuyển câu hỏi này cho bạn đã bị từ chối - nhưng việc thiếu hoạt động trong câu hỏi của bạn là minh chứng cho việc nó được hỏi ở góc StackExchange sai.
brettdj

Câu trả lời:


1

Là một phần mở rộng cho câu trả lời của tôi cho câu hỏi cuối cùng của bạn, đây là macro một lần nữa với việc thêm lời nhắc nhập dữ liệu.

Sub CopyData()
    Dim res As String
    Dim cl As Range
    Dim sh As Worksheet

    ' operate on the active sheet
    Set sh = ActiveSheet

    ' ask for ID to find in column A
    res = InputBox("Enter ID to Find", "Copy Row")

    ' If no responce, exit
    If res = "" Then
        Exit Sub
    End If

    With sh
        ' Find first occurance
        Application.FindFormat.Clear
        Set cl = .Columns(1).Find(What:=res, _
            After:=.Cells(.Rows.Count, 1), _
            LookIn:=xlValues, _
            LookAt:=xlWhole, _
            SearchOrder:=xlByRows, _
            SearchDirection:=xlNext, _
            MatchCase:=True)

        If Not cl Is Nothing Then
            ' if found, select entire row
            Set cl = cl.EntireRow
            ' copy and insert paste data into next row
            cl.Copy
            cl.Offset(1, 0).Insert
            ' turn off copy highlight (moving border)
            Application.CutCopyMode = False

            ' Prompt for input
            res = InputBox("Enter some info for Column G", "Update job information")
            If res <> "" Then
                cl.Cells(2, 7) = res
            End If
        End If
    End With
End Sub

Cảm ơn một lần nữa Chris @Chris Neilson. Bạn đã là một trợ giúp tuyệt vời.
Dave

@Chrisneilson, bạn có thể giúp tôi với một yêu cầu khác không? Tôi đã sửa đổi mã của bạn để chấp nhận cập nhật nhiều trường trong bảng tính của mình, nhưng một trong các trường là trường tên, được liên kết với danh sách thả xuống. Cửa sổ bật lên có thể thả xuống để chọn tên không? Rất biết ơn sự giúp đỡ của bạn.
Dave

@ Dave có lẽ bạn nên xây dựng một User Formtrong VBA cho điều này
chris Neilsen
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.