2017-09-28 1 views
1

Ich weiß, diese Frage bereits gestellt, aber ich möchte verstehen, was ich falsch macheExcel-Makro-Kopierfunktion

Ich möchte nur eine Zelle in eine andere Zelle in einem anderen Arbeitsblatt kopieren. Die kopierte Zelle hängt von der Zeile ab, in der sich die Schaltfläche befindet.

Hier ist mein Code:

Option Explicit 

Sub CreateButtons() 

    Dim i As Long 
    Dim shp As Object 
    Dim dblLeft As Double 
    Dim dblTop As Double 
    Dim dblWidth As Double 
    Dim dblHeight As Double 

    With Sheets("SALES UNFULFILLED") 
     dblLeft = .Columns("AZ:AZ").Left  'All buttons have same Left position 
     dblWidth = .Columns("AZ:AZ").Width 'All buttons have same Width 
     For i = 2 To 200      'Starts on row 2 and finishes row 20 
      dblHeight = .Rows(i).Height  'Set Height to height of row 
      dblTop = .Rows(i).Top   'Set Top top of row 
      Set shp = .Buttons.Add(dblLeft, dblTop, dblWidth, dblHeight) 
      shp.OnAction = "IdentifySelected" 
      shp.Characters.Text = "Invoice" 
     Next i 
    End With 
End Sub 


Sub IdentifySelected() 
    'NOTE: The button will always be on the active sheet 
    Dim strButtonName 
    Dim lngRow As Long 

    strButtonName = ActiveSheet.Shapes(Application.Caller).Name 
    lngRow = ActiveSheet.Shapes(strButtonName).TopLeftCell.Row 
    'MsgBox "Button is on row " & lngRow 
    Worksheets("invoice").Range(Cells(5, 3)).Value = Worksheets("SALES UNFULFILLED").Range(Cells(lngRow, 4)).Value 
End Sub 

Ich erhalte eine Fehlermeldung 1004 auf dieser Code-Zeile, aber ich verstehe nicht, warum Worksheets("invoice").Range(Cells(5, 3)).Value = Worksheets("SALES UNFULFILLED").Range(Cells(lngRow, 4)).Value

ich mit „„Value“zu ändern versucht auswählen "aber keine Chance

+1

Try 'Worksheets ("Rechnung"). Range (Worksheets ("Rechnung"). Die Zellen (5, 3)). Value = Worksheets ("SALES UNFULFILLED") .Range (Arbeitsblätter ("Rechnung"). Zellen (lngRow, 4)). Wert' oder nur 'Arbeitsblätter (" Rechnung "). Zellen (5, 3) .Wert = Arbeitsblätter (" VERKÄUFE UNGEFÜLLT "). Zellen (lngRow , 4) .Wert " – danieltakeshi

Antwort

1

ich denke, müssen Sie ändern:

Worksheets("invoice").Range(Cells(5, 3)).Value = Worksheets("SALES UNFULFILLED").Range(Cells(lngRow, 4)).Value 

zu

Worksheets("invoice").Cells(5, 3).Value = Worksheets("SALES UNFULFILLED").Cells(lngRow, 4).Value 

Hope this Hilfe