URL'yi açın, Baskı Ekranını Alın ve Hücre Yapıştırın


1

Bir URL başlatmaya çalışıyorum ve ardından ekran açılan IE penceresini yakalamaya çalışıyorum (URL başlatıldığında bir SmartCard Reader uygulamasını da başlatıyor), bu yüzden tüm pencereleri ya da IE penceresini açıp yapıştırma işlemine ya da yapıştırma işlemine ihtiyacım var Aşağıdaki hücreye bir resim olarak veya C sürücüsüne bir resim olarak kaydedin, sonra bu dosyayı çalışma kitabına ekleyebilirim.

Bu kodu başlatan belirli bir ekran için çalışacak şekilde çalışıyorum, yarısını çalıştırdım ama yanlış uygulamayı yakaladım.

Sub Screenshot()

OpenClipboard (0&)
EmptyClipboard
CloseClipboard

Dim IE As Object
Dim hwnd As Long, IECaption As String
Dim fdate As Date


'~~> Change Status and unmerge
Range("B11").Value = "Running"
ThisWorkbook.Sheets("SAT").Range("B18:D33").UnMerge

'~~> Launch URL

Set IE = CreateObject("InternetExplorer.Application")

IE.Visible = True

IE.Navigate "https://www.google.co.uk"

Sleep 5000

'~~> Get the caption of IE
IECaption = "Google - Internet Explorer"

Sleep 4000

'~~> Get handle of IE
hwnd = FindWindow(vbNullString, IECaption)

If hwnd = 0 Then
    MsgBox "IE Window Not found!"
    Exit Sub
Else
    '~~> Maximize IE
     'ShowWindow hwnd, SW_SHOWMAXIMIZED
End If

DoEvents
'~~> Snapshot of window & Paste into Sheet location (Esc used to close an application popup screen)

Sleep 1000

keybd_event vk_Escape, 0, 0, 0

Sleep 2000

Application.SendKeys "(%{1068})"

Sleep 2000

Application.SendKeys ("%{F4}")
ThisWorkbook.Sheets("SAT").Range("B18").Select
ActiveSheet.Paste


'~~> Tidy up and update status
Sheets("SAT").Range("B18:D33").Merge
Range("B11").Value = "Completed: Screen Captured"


End Sub

Ancak ekranın seçilmediğini ve altta B18'e yapıştıramadığını söylemediği bir sorun alıyorum, "ActiveSheet.Paste" bölümünde hata ayıklamamı sağlıyor.

O kadar yakın ki, herhangi bir yardım gerçekten takdir edilecektir.


Şu soruya bakarak IE penceresini odağa taşımaya bakın: stackoverflow.com/questions/21580606/…
davidmneedham 5:17

@davidmneedham Bunun için teşekkür ederim, çoğunlukla çalışmasını sağladım, ancak yine de yapıştırma ile ilgili bazı sorunlar var. Yukarıda düzenlenen sürümüme bakın.
Matt

Denedin ActiveSheet.Paste Destination:=Worksheets("SAT").Range("B15")mi
davidmneedham

@davidmneedham hala çalışma sınıfı sınıfının Yapıştırma yöntemi başarısız oldu ve yine de IE penceresini seçmiyordum
Matt
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.