2017-06-23 4 views
0

この場所は何度も私をここで保存しています。私はExcelのスプレッドシートからフォルダを作成するためにVisual Basicを使用しようとしています - ネットでこの単純な解決策を見つけることができましたが、それはある範囲では機能しますが、隣接セルの値も使用したいと考えています:Excelの値を使用してフォルダを作成する

私はそれが何かを探して終わるだろう推測している
Sub MakeFolders() 
Dim Rng As Range 
Dim maxRows, maxCols, r, c As Integer 
Set Rng = Selection 
maxRows = Rng.Rows.Count 
maxCols = Rng.Columns.Count 
For c = 1 To maxCols 
r = 1 
Do While r <= maxRows 
If Len(Dir(ActiveWorkbook.Path & "\" & Rng(r, c), vbDirectory)) = 0 Then 
MkDir (ActiveWorkbook.Path & "\" & Rng(r, c)) 
On Error Resume Next 
End If 
r = r + 1 
Loop 
Next c 
End Sub 

...

(ActiveWorkbook.Path & "\" & Rng(r, c) & Rng(r, c).Offset(0, 12)) 

しかし、私は正直にストローで握りしめています、すべてのヘルプは素晴らしいだろう。

+1

*「この場所は私を何度も救ってくれました」* ...素晴らしいですが、以前の質問に対する答えは一度も受け入れられなかったようです:/ –

答えて

0

コードは、選択したセルごとに別々のフォルダを作成することを目的としており、正常に動作します。その行内のすべての列の値をフォルダ名として結合して、選択した行ごとに1つの別個のフォルダを作成したいのですか?明確にするために

、のは言わせて:
- A1 = xx1、B1 = xx2
- A2 = yy1、B2 = yy2

4つのフォルダが作成されます既存のマクロ:xx1xx2yy1を、yy2

あなたは、むしろ2つのフォルダxx1xx2yy1yy2は、あなたがこのように、いくつかの変更を行うことができる場合:

Sub MakeFoldersForEachRow() 
    Dim Rng As Range 
    Dim maxRows, maxCols, r, c As Integer 
    Dim s As String 
    Set Rng = Selection 
    maxRows = Rng.Rows.Count 
    maxCols = Rng.Columns.Count 
    For r = 1 To maxRows 
     s = "" 
     For c = 1 To maxCols 
      s = s & Rng(r, c) 
     Next c 
     If Len(Dir(ActiveWorkbook.Path & "\" & s, vbDirectory)) = 0 Then 
      MkDir (ActiveWorkbook.Path & "\" & s) 
      On Error Resume Next 
     End If 
    Next r 
End Sub 
+0

これはすごくうれしくありました。私はそれを完璧に働くので、スペーサーで追加するためにそれを適応させました。ありがとうございました! –

+0

助けて嬉しいです:) – curious

関連する問題