如何只更改文件夹中所有excel文件的一列

时间:2015-02-11 11:02:09

标签: excel-vba vba excel

我在文件夹中有50个.xlsx或.csv文件。我想更改特定于标题的数据" PlantNo"新数据。

假设旧数据是" 35"现在我想用" 1"对于特定列的文件夹中的所有excel工作簿而不是整个数据。

我已经编写了代码,将所有这些更改为但我希望将其限制为只有一列

1 个答案:

答案 0 :(得分:0)

在回答这个问题时,您可以使用以下内容:

Sub sbOneColumnReplace()
Application.ScreenUpdating = False 'Disable flicker on screen
Dim lLastCol As Long, lNumCol As Long, lLastRow As Long
Dim sTitleCol As String
Dim wsThis As Worksheet

'Here add/define the workbook

Set wsThis = Worksheets(1) 'Select first sheet
lLastCol = wsThis.Cells(1, Columns.Count).End(xlToLeft).Column 'Last column in a specific row

For lNumCol = 1 To lLastCol 'Loop from the first column to the last one found
    sTitleCol = wsThis.Cells(1, lNumCol).Value 'I suppose the Title is in the first row, if not change the number value

    If sTitleCol = "PlantNo" Then 'This search the title vlaue.If you want it, you could use also vLookup with the defined range


        wsThis.Columns(lNumCol).Replace _
        What:="35", Replacement:="1", _
        SearchOrder:=xlByColumns, MatchCase:=True

    End If

Next lNumCol
Application.ScreenUpdating = True
End Sub

<强>未测试 但重要的是要注意可能是更好/不同的方式来实现它,并且@Katz提到重要的是添加代码或参考,以显示您已经搜索了一个方法来解决您的问题和反射,你调查它,加强/这些知识的纠正可能会来,如果你只发布没有任何这些的问题,有时(如果不是总是)它会被所有人跳过(相信我,我也是这里的新手)。希望它能帮助你朝着正确的方向前进