0

選択したセルのデータをあるワークブック シートから別のシートにコピーする Excel VBA を作成しました。ここでは、VBAが空の値を貼り付けた後、いくつかの値を貼り付けた後、特定のセルまで正常に機能しています。ソースセルは空ではありませんが、空の値を貼り付けています。ブレークポイントを置いて見ましたが、値はそこにありました。この問題を解決するために私を助けてください。

コードは次のとおりです。

Set objClickScriptWB = objExcelWB.Workbooks.Open(SourceWBPath)
    For intSheet = 9 To 12 'objClickScriptWB.Worksheets.Count
        If InStr(1, objClickScriptWB.Worksheets(intSheet).Name, "SC", vbTextCompare) > 0 Then
            blnScriptSheet = 1
            objClickScriptWB.Worksheets(intSheet).Activate
            For r = 24 To objClickScriptWB.Worksheets(intSheet).UsedRange.Rows.Count
                    If Trim(LCase(objClickScriptWB.Worksheets(intSheet).Cells(r, 6).Value)) <> Trim(LCase("Transaction")) And Trim(LCase(objClickScriptWB.Worksheets(intSheet).Cells(r, 6).Value)) <> Empty And objClickScriptWB.Worksheets(intSheet).Cells(r, 6).MergeArea.Cells.Count = 1 Then
  objClickScriptWB.Worksheets(intSheet).Cells(r, 6).Select



                                If blnCompSht = 0 Then
                                    Set objComparisonSheet = ThisWorkbook.Worksheets.Add
                                    objComparisonSheet.Name = "Comparison"
                                    objComparisonSheet.Activate

                                    objComparisonSheet.Cells(2, 2).Value = "Clickscript Transaction names"

                                    i = 3
                                    objExcelWB.Selection.Copy
                                    objComparisonSheet.Activate
                                    objComparisonSheet.Cells(i, 2).Select
                                    'Sheet3.Range("B2").Select
                                    'objComparisonSheet.Range("B" & i).PasteSpecial Paste:=xlPasteValues
                                    objComparisonSheet.Paste
                                    'Sheet2.Range("G2").Cells
                                    i = i + 1
                                    blnCompSht = 1
                                    'Application.Wait (Now + TimeValue("00:00:01"))
                                ElseIf blnCompSht = 1 Then
                                    ThisWorkbook.Worksheets("Comparison").Activate

                                    Dim LastRow As Integer
                                    For intRow = 2 To ThisWorkbook.Worksheets("Comparison").Rows.Count
                                        If ThisWorkbook.Worksheets("Comparison").Cells(intRow, 2).Value = Empty Then
                                            i = intRow
                                            Exit For
                                        End If

                                    Next

                                    objExcelWB.Selection.Copy
                                    ThisWorkbook.Worksheets("Comparison").Cells(i, 2).Select
                                    'ThisWorkbook.Worksheets("Comparison").Range("B" & intRow).PasteSpecial Paste:=xlPasteValues
                                    ThisWorkbook.Worksheets("Comparison").Paste
                                    i = i + 1
                                    'Application.Wait (Now + TimeValue("00:00:01"))
                                End If

                            'End If
                        'Next
                'Call CompareTxnNames(objClickScriptWB.Worksheets(intSheet).Name)
                    End If
                'Next
            Next

        End If
    Next
End Sub

私を助けてください

ありがとう

4

1 に答える 1

0

次のようなコードを使用して、1 つのセルの値を他のセルに直接適用することもできます。

CellTarget.Value2 = CellSource.Value2

またはあなたの場合:

objComparisonSheet.Cells(i, 2).Value2 = objClickScriptWB.Worksheets(intSheet).Cells(r, 6).Value2

サイドノート:

Value2 を使用する習慣を身につけてください。これは、書式設定が適用された値である Value と比較したセルの真の値です。後者は遅く、日付値の場合、Excel で米国の日付形式を使用していない場合、間違った日と月が表示される可能性があります。

于 2013-03-20T09:42:37.637 に答える