2017-07-06 1 views
0

Excel式ではなく、VBAを使用してセルを取得する方法はありますか?与えられた数値を返す値がある場合。データがない場合と同様にa = A1でない場合のように空白それ以外のセル行の値を取得する場合は、空白のセルと式のみを使用します。

例では、 の列Aには、各行が1,2,3行下になる式があります。 B列には値(A1、A2など)が表示される式がありますが、空白で表示され、数式はそのまま残ります。

私はまた、回避策と見なすことができる特別なコピーと貼り付け方法も知っていますが、これを行うより良い方法があるのか​​どうか不思議です。

Sub CopyCol() 

     Sheets("Sheet3").Columns(10).Copy 

     Sheets("Sheet3").Columns(10).PasteSpecial xlPasteValues 

End Sub 

ありがとうございました。

+0

を(3つのセミコロン)?列Bにはまだ数式が保存されますが、値は表示されません。 –

+0

@RomcelGeluz番号の書式を;;;に変更しようとしましたか?エクセルで?私はちょうどそれを試してみたが、それはちょうどすべてのBの列のセルの空白を返しますが、数式はタクトで残っているように見えます。私は= A1のようなものを望んでいて、左のセルに値がない場合、式と空白は一切与えられません。 –

+0

本当にこのタスクでVBAが必要です。試してみるのに1〜2分くら​​い。 –

答えて

0

この使用する:あなたが;;;カラムBの番号書式を変更しようとしたことがあり

Option Explicit 

Public Sub CopyCol() 
    Dim ur As Range, col1 As Variant, col2 As Variant, r As Long 

    Set ur = ThisWorkbook.Sheets("Sheet3").UsedRange 

    ur.Columns("B").Clear 
    col2 = ur.Columns("B") 
    col1 = ur.Columns("A") 

    If Not IsEmpty(col1) Then 
     If IsArray(col1) Then 
      For r = 1 To UBound(col1) 
       If Len(col1(r, 1)) > 0 Then col2(r, 1) = col1(r, 1) 
      Next 
     Else 
      col2 = col1 
     End If 
     ur.Columns("B") = col2 
    End If 
End Sub 
+1

完璧な人です。ありがとう! –

関連する問題