首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何根据行值创建文件夹

如何根据行值创建文件夹
EN

Stack Overflow用户
提问于 2019-03-01 20:05:01
回答 3查看 50关注 0票数 0

首先,我想写一个宏来遍历每一行,所以如果项目的有效值大于10,就根据rows.in加法的值创建一个文件夹,而不是重复的文件夹!例如,如果存在行,则使用此名称创建一个文件夹20_NT25153_29.9,然后创建另一个item20

我想添加这句话,我知道我的代码很简单,但我是VBA新手,因此需要更多帮助:)

代码语言:javascript
运行
复制
 Sub loopthrough()

    With Worksheets("Output_" & Date)
      fName5 = .Range("d").Value
      fName1 = .Range("B").Value
      fName2 = .Range("c").Value
      fName4 = "_"
      BrowseForFolder = CurDir()
    End With

    For Each cell In ActiveWorkbook.Worksheets
      If cell.Range("B").Value > "10" Then
          BrowseForFolder1 = BrowseForFolder & "\" & fName1 & fName2 & fName5
          MkDir BrowseForFolder1
      End If
    Next cell

   End Sub
EN

回答 3

Stack Overflow用户

发布于 2019-03-01 20:32:32

您可以使用以下代码:

代码语言:javascript
运行
复制
Sub Macro1()

Dim lLastRow As Long
Dim sPath As String, sNewFolder As String

sPath = CurDir()
lLastRow = Range("A" & Rows.Count).End(xlUp).Row

For i = 2 To lLastRow
    If Range("B" & i).Value > 10 Then
        sNewFolder = Range("B" & i).Value & "_" & Range("C" & i).Value & "_" & Range("D" & i).Value
        If Dir(sPath & "\" & sNewFolder, vbDirectory) = "" Then
            MkDir (sPath & "\" & sNewFolder)
        End If
    End If
    sNewFolder = vbNullString
Next

End Sub

首先,我检查基于A列的最后一行索引,而不是遍历整个工作表。在一个循环中,我使用了一个带有vbDirectory参数的Dir()函数,该函数在文件夹不存在时返回空字符串&在这种情况下,它会创建一个文件夹。

票数 2
EN

Stack Overflow用户

发布于 2019-03-01 20:13:02

这就是你要找的吗?

文件夹名称是列B值_列C值_列D值?

代码语言:javascript
运行
复制
Sub loopthrough()

Dim cell As Range, fName4

BrowseForFolder = CurDir()
fName4 = "_"

With Worksheets("Output_" & Date)
    For Each cell In .Range("B1", .Range("B" & Rows.Count).End(xlUp))
        If cell.Value > 10 Then
            BrowseForFolder1 = BrowseForFolder & "\" & cell.Value & fName4 & cell.Offset(, 1).Value & fName4 & cell.Offset(, 2).Value
            MkDir BrowseForFolder1
        End If
    Next cell
End With

End Sub
票数 0
EN

Stack Overflow用户

发布于 2019-03-01 22:28:01

它适用于和我一样需要的人

代码语言:javascript
运行
复制
 Sub Macro1()

Dim lLastRow As Long
Dim sPath As String, sNewFolder As String

sPath = CurDir()
lLastRow =        workbooks(sFilename).Sheets(1).Range("A:A").SpecialCells(xlCellTypeLastCell).Row

Workbooks(sFilename).Sheets(1).Activate

For i = 2 To lLastRow
If Workbooks(sFilename).Sheets(1).Cells(i, 2).Value >= 10 Then
    sNewFolder = ActiveSheet.Range("B" & i).Value & "_" & ActiveSheet.Range("C" & 
               i ).Value & "_" & ActiveSheet.Range("D" & i).Value
     If Dir(sPath & "\" & sNewFolder, vbDirectory) = "" Then
        MkDir (sPath & "\" & sNewFolder)
    End If
  End If
  sNewFolder = vbNullString
 Next

 End Sub
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54944317

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档