I Datagridview Werte zu kopieren versuche, zu übertreffen, so weit, ich diesen Code haben, die funktioniert, aber nur linearKopieren vb.net Datenraster Werte mit vba Sendkeys zu übertreffen
Sub Test()
Dim Wkb As Workbook
Set Wkb = ActiveWorkbook
notepadID = Shell("C:\Program Files\Default Company Name\TestInstaller\TestApp.exe")
SendKeys "admin", True
SendKeys "{TAB}", True
SendKeys "nothing", True
SendKeys "{ENTER}", True
SendKeys "{ENTER}", True
SendKeys "{LEFT}", True
SendKeys ("^C")
Application.Wait (Now + TimeValue("0:00:02"))
AppActivate "MicroSoft Excel"
Application.Wait (Now + TimeValue("0:00:02"))
ActiveCell.Offset(0, 0).Select
Application.Wait (Now + TimeValue("0:00:01"))
ActiveSheet.PasteSpecial
Application.Wait (Now + TimeValue("0:00:01"))
AppActivate "Inventory"
SendKeys "{TAB}", True
SendKeys ("^C")
Application.Wait (Now + TimeValue("0:00:02"))
AppActivate "MicroSoft Excel"
Application.Wait (Now + TimeValue("0:00:02"))
ActiveCell.Offset(0, 1).Select
ActiveSheet.Paste
End Sub
Was würde ich tun möchte, ist, kopiere Daten von einem Datagrid, das Datagrid besteht aus 4 Zeilen und 4 Spalten, ich würde alles aus dem Datagrid in meine Excel mit VBA Sendkeys kopieren wollen. Vielen Dank im Voraus!
EDIT:
Ich kenne diesen Code haben, aber die Ausgabe ist diagonal
Sub Test()
Dim Wkb As Workbook
Set Wkb = ActiveWorkbook
notepadID = Shell("C:\Program Files\Default Company Name\TestInstaller\TestApp.exe")
SendKeys "admin", True
SendKeys "{TAB}", True
SendKeys "nothing", True
SendKeys "{ENTER}", True
SendKeys "{ENTER}", True
Dim i As Integer
Dim j As Integer
i = 1
j = 1
SendKeys ("^C")
Application.Wait (Now + TimeValue("0:00:02"))
AppActivate "MicroSoft Excel"
Application.Wait (Now + TimeValue("0:00:02"))
ActiveCell.Offset(1, 1).Select
'Application.Wait (Now + TimeValue("0:00:01"))
ActiveSheet.PasteSpecial
Application.Wait (Now + TimeValue("0:00:01"))
AppActivate "Inventory"
SendKeys "{TAB}", True
If Not IsEmpty(ActiveCell.Value) Then
Do While Cells(i, j).Value = Cells(i, j + 3).Value
j = j + 1
SendKeys ("^C")
Application.Wait (Now + TimeValue("0:00:02"))
AppActivate "MicroSoft Excel"
Application.Wait (Now + TimeValue("0:00:02"))
ActiveCell.Offset(i, j).Select
'Application.Wait (Now + TimeValue("0:00:01"))
ActiveSheet.PasteSpecial
Application.Wait (Now + TimeValue("0:00:01"))
AppActivate "Inventory"
SendKeys "{TAB}", True
If i = 4 Then
i = i = 0
j = j + 1
End If
Loop
End If
End Sub
Ich bin nicht wirklich erfahren mit VB und Schlüssel senden, aber können Sie nicht einfach durch die Zellen Schleife? Zum Beispiel 'ActiveCell.Offsett (y, x) .Select' –
@BennoGrimm Sir könnten Sie es ausarbeiten? Ich benutzte Offset, aber die Referenz geht nicht neben der Zelle, es geht eher in eine diagonale Position – UserSeriously
Kannst du erklären, was du meinst mit _Es funktioniert aber nur linear_? –