Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


11123 / 13644 ツリー ←次へ | 前へ→

【17972】計算式について 初心者 04/9/11(土) 19:01 質問[未読]
【17975】Re:計算式について IROC 04/9/11(土) 20:18 回答[未読]
【17989】Re:計算式について Asaki 04/9/12(日) 1:21 回答[未読]

【17972】計算式について
質問  初心者 E-MAIL  - 04/9/11(土) 19:01 -

引用なし
パスワード
   Sub 実行()
  Dim Filename As String  
  Dim r As Integer     
  Dim Fname As String  
  
    Filename = Application.GetOpenFilename    
    If Filename <> "False" Then
    Filename = Replace(UCase(Filename), ".CSV", ".txt")            
                          
    Workbooks.OpenText Filename:=Filename, DataType:=xlDelimited, _
    ConsecutiveDelimiter:=True, Comma:=True, Fieldinfo:=Array(1, 2)       
   Else End
   End If
   Application.DisplayAlerts = False    
   Cells.Select              
   Selection.Copy             
   Workbooks.Add              
   Sheets("Sheet1").Select         
   Sheets("Sheet1").Name = "集計"      
   Sheets("Sheet2").Select         
   Sheets("Sheet2").Name = "TENZAIK(P)"   
   Sheets("Sheet3").Select         
   Sheets("Sheet3").Name = "TENZAIK"    
   Worksheets("集計").Select        
   Cells(1, 1).Select            
   ActiveSheet.Paste            
   Application.CutCopyMode = False     
   Fname = Application.GetOpenFilename
   If Fname <> "False" Then
   Workbooks.OpenText Filename:=Fname, DataType:=xlDelimited, _
   ConsecutiveDelimiter:=True, Comma:=True, Fieldinfo:=Array(1, 2)
   Else: End
   End If
   Cells.Select              
   Selection.Copy             
   Workbooks("book1").Activate       
   Worksheets("TENZAIK").Select      
   ActiveSheet.Paste            
   Application.CutCopyMode = False     
   Call TEN
  End Sub

Sub TEN()
 Dim 行 As Integer
  Dim n As Integer
  n = 2
  行 = Columns(1).CurrentRegion.Rows.Count
  
  Application.DisplayAlerts = False
  Columns(2).Select
  Selection.Insert         
  Cells(1, n).Value = "得意先"
  Application.CutCopyMode = False
  Cells(2, n).Select
  Selection.FormulaR1C1 = "=MID(RC[-1],1,7)"
  Selection.Copy
  Range(Cells(3, n), Cells(行, n)).Select
  ActiveSheet.Paste
  Application.CutCopyMode = False

  End Sub
というコードがあるのですが、"=MID(RC[-1],1,7)"という計算式がうまく行きませんなぜでしょうか?

【17975】Re:計算式について
回答  IROC  - 04/9/11(土) 20:18 -

引用なし
パスワード
   その数式自体あっているのですか?

手入力して問題ないですか?

【17989】Re:計算式について
回答  Asaki  - 04/9/12(日) 1:21 -

引用なし
パスワード
   こんばんは。

数式自体は問題なさそうなんですが。。。
セルを結合していたり、対象シートが意図したものと違っていたりしませんか?

ちょっと、Sub TENのほうだけ書き直してみました。
Sub TEN2()

  With ActiveSheet
    .Columns(2).Insert
    .Cells(1, 2).Value = "得意先"
    .Range(.Cells(2, 2), .Cells(1, 1).End(xlDown).Offset(, 1)).FormulaR1C1 _
      = "=MID(RC[-1],1,7)"
  End With

End Sub

・Select/Activate しない
・対象シートを明示する
ような書き方のほうが良いでしょう。

11123 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free