2017-08-09 8 views
0

これはほとんどの人にとって単純なことです。私はVBAを使用してExcelワークブックの作成と更新を始めました。既存のワークブックとワークシートを開いて更新するためのコードをインターネット上に見つけました。私が言ったように、私はこれで全く新しいです。このコードは理にかなっていますか?あなたはExcelのVBAにある場合、これは」にISN私は既存のワークブックを2つのワークシートで開き、更新する

Dim wbSource, xlApp, srcWorksheet 

'initialize 
Set xlApp = CreateObject("Excel.Application") 

'open source and target files 
Set wbSource = lApp.Workbooks.Open("X:\GCIXCycleCompare_test_auto.xlsx") 
set srcWorksheet = wbSource.Worksheets("NewCycle") 
srcWorksheet.sheets("NewCycle").Activate 

srcWorksheet.Rows("1:1").Delete 
+0

ここに入力ミスがあるのか​​どうかは分かりませんが、 'Set wbSource = xlApp ...'だけでなく 'lApp ... 'としたいと思います。また、 'Set srcWorksheet = ...'を実行してwoksheetとして設定します。 'srcWorksheet.Activate'が必要な次の行は、ワークシートを再度呼び出すとエラーになることがあります。 – BruceWayne

答えて

0

を得ることができます私は、既存のワークブックを開く方法を知っておく必要があると私が発見したすべての例は、任意の助けのために私たちのenvironment.Thanksで作業されていませんあなたが欲しいものはかなりあります。このコードは外部のアプリケーション用に書かれています(たとえばVB6で書かれています)。Excelをリモートで開き、そのExcelのコピーを作成します。すでにExcel/VBAにいる場合は、明らかにそうする必要はありません。あなたは(VBA内側から...またはExcelで実行するマクロでF5をクリックすることで)このコードを実行する場合は、開く必要があります

Public Sub MyCode() 
    Dim wb as Workbook 
    Dim ws as Worksheet 

    Set wb = Application.Workbooks.Open("X:\GCIXCycleCompare_test_auto.xlsx") 
    Set ws = wb.Worksheets("NewCycle") 

    ws.Rows(1).Delete 
End Sub 

:VBAで

、同等のコードはこのようなものになるだろうテストファイルをX:ドライブから取り出し、その最初の行を削除します。

+0

実際にExcelシートにリモートアクセスし、特定のシート( "NewCycle")の既存データを更新しようとしています –

+0

VBAを実行しているコピーから別のExcelコピーを開きますか? –

+0

私が言ったように。これは私にとって初めてのことです。私は勉強中です。これが状況です。今までは手動で更新された優れたスプレッドシートをサーバーに置いています。私はバッチジョブを書いています。これは、Excelシートを見つけ出して開き、更新し、終了して終了するプロセッサに送信します。それは私が直面している基本的なシナリオです。私はあなたの助けに感謝します。このようにしてExcelスプレッドシートにアクセスしたかどうかは分かりません。 –

関連する問題