我从SAP提取数据到excel,我这样做: -交易会自动在SAP中运行,然后将我的文件保存在txt文件夹中 -VBA读取我的txt文件 -将其粘在Excel临时表中,然后在我的表中 -问题是有时我没有任何数据,因为SAP除了粘贴上次交易的数据(因为我要执行几笔交易)外找不到任何数据,我想解决的问题是我想做一个循环“如果剪贴板中的数据与临时表相同,请选择timesheet2(一直没有数据)”并将其复制到我的表中(该表将为空) 我不确定这是正确的方法,但我认为这是可行的并且可以解决问题
Sub StartExtract()
' Set the sid and client to connect to
W_System = "P10320"
' Run the GUI script
RunGUIScript
' End the GUI session
objSess.EndTransaction
'effacer contenu feuille temp
Sheets("temp").Select
Cells.Select
Selection.Delete Shift:=xlUp
' Switch to the worksheet where the data is loaded to
Sheets("temp").Select
' Load the CSV file
OpenCSVFile
Sheets("BGSOCIAL").Select
Columns("B:G").Select
Selection.ClearContents
Sheets("temp").Range("B:G").Copy
Sheets("BGSOCIAL").Range("B:G").PasteSpecial Paste:=xlPasteValues
Sheets("BGSOCIAL").Select
答案 0 :(得分:0)
您无法评估要复制的区域是否具有值。但是,我认为如果Temp范围为空,我们可以跳过下面的所有内容。我还建议您使用值集,而不要使用xlPasteValues
希望有效。
Sub StartExtract()
' Set the sid and client to connect to
W_System = "P10320"
' Run the GUI script
RunGUIScript
' End the GUI session
objSess.EndTransaction
'effacer contenu feuille temp
Sheets("temp").Select
Cells.Select
Selection.Delete Shift:=xlUp
' Switch to the worksheet where the data is loaded to
Sheets("temp").Select
' Load the CSV file
OpenCSVFile
'Modified code below...
If Application.WorksheetFunction.CountA(Range("B:G")) = 0 Then
'skips as no values in the range.
Else
' Dont need to copy and paste, just set the values to being the same.
Sheets("BGSOCIAL").Range("B:G").Value = Sheets("temp").Range("B:G").Value
End If
Sheets("BGSOCIAL").Select
End Sub