下午好,
以下代码仅将工作表名称添加到列单元格范围D2-D5,而不管单元格D2-D5中的文本是什么。
我是否可以获得修改代码的指导,如果在D栏中有一个特定的单词“Category”或“Store”,它会将工作表名称和“_”添加到单元格值中,该单元格将是“类别“”存储“而不仅仅适用于以下代码的单元格D2-D5?
e.g:
Sheet1_Category Sheet1_Store
ws.Range("D2").Value = ws.Name & "_" & ws.Range("D2").Value
ws.Range("D3").Value = ws.Name & "_" & ws.Range("D3").Value
ws.Range("D4").Value = ws.Name & "_" & ws.Range("D4").Value
ws.Range("D5").Value = ws.Name & "_" & ws.Range("D5").Value
DoEvents
ws.Copy
ActiveWorkbook.SaveAs sheetDirectory & Application.PathSeparator & ws.Name & "_" & wbName
DoEvents
ActiveWorkbook.Close
validWs = True
End If
Next ws
答案 0 :(得分:0)
它会使用IF
和INSTR
之类的
If instr(1,ws.Range("D3").Value,"CATEGORY")>0 then
ws.Range("D3").Value = ws.Name & "_" & ws.Range("D3").Value
end if
或者您可以使用like
if ws.Range("D3").Value like "*CATEGORY*" then
或者您可以使用range("D:D").find
答案 1 :(得分:0)
我已经考虑到上面生成以下修改过的代码:
categoryData = ws.Range("D1").Resize(ws.UsedRange.Rows.count, 1)
For i = 1 To UBound(categoryData)
If categoryData(i, 1) = "store" Then categoryData(i, 1) = ws.Name & "_" & categoryData(i, 1)
If categoryData(i, 1) = "category" Then categoryData(i, 1) = ws.Name & "_" & categoryData(i, 1)
Next i
ws.Range("D1").Resize(ws.UsedRange.Rows.count, 1) = categoryData
DoEvents
ws.Copy
ActiveWorkbook.SaveAs sheetDirectory & Application.PathSeparator & ws.Name & "_" & wbName
DoEvents
ActiveWorkbook.Close
validWs = True
End If
Next ws