2017-10-04 13 views
2

まず、Excelワークブックのコードを直接実行しているときにエラーが発生しています。下記のエラーメッセージが表示されますエラーコードの再実行

選択した項目の横にあるすべてのデータを確認し、値を入力するパターンは表示されませんでした。 Flash Fillを使用するには、表示する出力の例をいくつか入力し、入力する列にアクティブセルを保存してから、Flash Fillボタンをもう一度クリックします。

ただし、 [開発者]タブの下のVBAウィンドウから再生される場合は[コード]をクリックします。しかし、エラーメッセージ1004がポップアップする前に実行されるのは1回に制限され、再度再生するとコードエラーが発生します。

助けてください。これまでにVBAを教えたり学んだことはありません。以下のコードはネット上で調べられ、試行&エラーのマッシュアップです。事前に

Sub Graph() 
' 
' Graph Macro 
' 
' Keyboard Shortcut: Ctrl+e 
' 
'Select values in a column from specified workbook and sheet 
Dim LR As Long, cell As Range, rng As Range 

Windows("Area3-LG").Activate 
With Sheets("Graph data") 
    LR = .Range("B" & Rows.Count).End(xlUp).Row 
    For Each cell In .Range("B4:B" & LR) 
     If cell.Value <> "" Then 
      If rng Is Nothing Then 
       Set rng = cell 
      Else 
       Set rng = Union(rng, cell) 
      End If 
     End If 
    Next cell 
    'Error with rng.select when Macro is runned again 
    rng.Select  
End With 
Selection.Copy 

'Open next workbook 
Windows("InstData_TEMS_Existing").Activate 
'Open Sheet L 
Sheets("L").Select 
'Select empty field fromn column AA 
Range("AA" & Rows.Count).End(xlUp).Offset(1).Select 
'paste selection to empty field 
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
    :=False, Transpose:=False 
'Go back to previous workbook & delete column 
Windows("Area3-LG").Activate 
Sheets("Graph data").Select 
Columns("B:B").Select 
Application.CutCopyMode = False 
Selection.Delete Shift:=xlToLeft 
Sheets("Graph Data").Select 

End Sub 

おかげで(:

+1

(1)どの行でエラーを得るのですか? (2)注意: '.Select'や' .Activate'の使用は避けるべきです。これは悪い習慣であり、多くの問題につながりますので、いくつかのチュートリアルがあります。 Select'と '.Activate'を実行すると、問題を見つけるのがはるかに簡単になります。 –

答えて

0

は、Selectすべての不要なずに、Activateを以下のコードを試してみてください、とSelection

Sub Graph() 
' 
' Graph Macro 
' 
' Keyboard Shortcut: Ctrl+e 
' 
'Select values in a column from specified workbook and sheet 
Dim LR As Long, cell As Range, rng As Range 

With Workbooks("Area3-LG").Sheets("Graph data") 
    LR = .Range("B" & .Rows.Count).End(xlUp).Row 
    For Each cell In .Range("B4:B" & LR) 
     If cell.Value <> "" Then 
      If rng Is Nothing Then 
       Set rng = cell 
      Else 
       Set rng = Union(rng, cell) 
      End If 
     End If 
    Next cell 
End With 
rng.Copy ' copy the union range (no need to select it first) 

' paste without all the selecting 
With Windows("InstData_TEMS_Existing").Sheets("L") 
    ' Paste (without select) un the next empty cell fromn column AA 
    .Range("AA" & .Rows.Count).End(xlUp).Offset(1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _ 
          SkipBlanks:=False, Transpose:=False 
End With 

Application.CutCopyMode = False 

'Go back to previous workbook & delete column 
Workbooks("Area3-LG").Sheets("Graph data").Columns("B:B").Delete Shift:=xlToLeft 

End Sub 
+0

この行を実行中にエラーが発生しました Windows( "InstData_TEMS_Existing")。シート( "L") 「ランタイムエラー9、下付き文字が範囲外です」というエラーメッセージが表示されます – Tyler

+0

このエラーメッセージは、ワークブックそのものをExcelにする アクティブな列のセルの一部の表示書式が異なるレベルの精度の基本値を使用しているため、値を入力しませんでした – Tyler

関連する問題