यह अपेक्षाकृत आसान काम होना चाहिए। मैंने मैच फ़ंक्शन और फ़ंक्शन दोनों के साथ प्रयास किया, हालांकि मैं इसे काम पर नहीं ला सकता।
यही वह है जिसे मैं प्राप्त करने की कोशिश कर रहा हूं:
मैं कुछ वांछित स्ट्रिंग्स द्वारा A1 और B1 में जो कुछ भी है उसे अधिलेखित कर देता हूं। मैं 'सबटोटल' को 'टोटल' से रिप्लेस करता हूं।
कॉलम सी से एफ में कुछ यादृच्छिक शोर है, और मैं इसे "काउंटर" से बदलना चाहता हूं। यह वांछित के रूप में काम करता है, लेकिन मैं "कुल" -1 वाले कॉलम की संख्या के साथ लूप में "6" को बदलकर इसे स्वचालित करना चाहता हूं।
कोई विचार इसे काम पर कैसे लाया जाए?
यहाँ मेरा कोड है:
Sub test()
Set sht = Worksheets(1)
sht.Cells(1, "A").Value = "Name"
sht.Cells(1, "B").Value = "Age"
sht.Cells.Replace What:="*Total*", Replacement:="Total"
For i = 3 To 6
sht.Cells(1, i).Value = i - 2
Next
End Sub
समाधान
जाहिरा तौर पर मैंने खोज समारोह का गलत इस्तेमाल किया। यहां खोज फ़ंक्शन के साथ एक कार्यशील समाधान है।
Sub test()
Dim search As Range
Dim n As Integer
Set sht = Worksheets(1)
sht.Cells(1, "A").Value = "Name"
sht.Cells(1, "B").Value = "Age"
sht.Cells.Replace What:="*Total*", Replacement:="Total"
Set search = sht.Rows(1).Find(What:="Total", LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)
n = search.Column - 1
For i = 3 To n
sht.Cells(1, i).Value = i - 2
Next
End Sub
2 जवाब
बदलें और गिनें
Option Explicit
Sub test()
Const cRow As Long = 1
Const First As Long = 3
Dim sht As Worksheet
Dim colNum As Long
Dim Last As Variant
Set sht = Worksheets(1)
sht.Cells(cRow, "A").Value = "Name"
sht.Cells(cRow, "B").Value = "Age"
sht.Rows(cRow).Replace What:="*Total*", Replacement:="Total"
Last = Application.Match("Total", Rows(cRow), 0)
If Not IsError(Last) Then
For colNum = First To Last - 1
sht.Cells(cRow, colNum).Value = colNum - First + 1
Next
End If
End Sub
या:
Sub test2()
Const cRow As Long = 1
Const First As Long = 3
Dim sht As Worksheet
Dim colNum As Long
Dim Last As Variant
Set sht = Worksheets(1)
sht.Cells(cRow, First - 2).Value = "Name"
sht.Cells(cRow, First - 1).Value = "Age"
sht.Rows(cRow).Replace What:="*Total*", Replacement:="Total"
Last = Application.Match("Total", Rows(cRow), 0)
If Not IsError(Last) Then
For colNum = First To Last - 1
sht.Cells(cRow, colNum).Value = colNum - First + 1
Next
End If
End Sub
मैं इस तरह कोड का उपयोग करूंगा: -
Sub test()
Dim Arr As Variant
Arr = Array("Name", "Age", 1, 2, 3, 4, "Total")
Worksheets(1).Cells(1, 1).Resize(1, UBound(Arr) + 1).Value = Arr
End Sub
ध्यान दें कि 1 से 4 तक की संख्याएं संख्याओं के रूप में डाली जाएंगी। यदि आप चाहते हैं कि वे इस तरह के उद्धरण चिह्नों के साथ टेक्स्ट के चारों ओर हों, Arr = Array("Name", "Age", "1", "2", "3", "4", "Total")
संबंधित सवाल
नए सवाल
excel
केवल एक्सेल ऑब्जेक्ट्स या फ़ाइलों, या जटिल फॉर्मूला विकास के खिलाफ प्रोग्रामिंग पर प्रश्नों के लिए। यदि आप लागू हो तो आप Excel टैग को VBA, VSTO, C #, VB.NET, PowerShell, OLE स्वचालन और अन्य प्रोग्रामिंग संबंधी टैग और प्रश्नों के साथ जोड़ सकते हैं। सुपर उपयोगकर्ता पर एकल कार्यपत्रक कार्यों के लिए एमएस एक्सेल के बारे में सामान्य सहायता उपलब्ध है।