क्या मैं सेल में हाइपरलिंक के लिंक स्थान को निकालने के लिए एक एक्सेल फॉर्मूला का उपयोग कर सकता हूं?


46

मेरे पास हाइपरलिंक वाले हाइपरलिंक स्थान वाले विभिन्न हाइपरलिंक्स वाले सेल के साथ एक स्प्रेडशीट है

अर्थात:

सेल स्थान: A1

प्रदर्शन पाठ = "साइट जानकारी"

हाइपरलिंक स्थान = " http://www.mylocation.com "

क्या कोई एक्सेल फॉर्मूला है जो मुझे हाइपरलिंक स्थान के टेक्स्ट स्ट्रिंग को एक्सेस करने की अनुमति देता है?

आदर्श रूप में यह इस तरह दिखेगा:

FORMULA (A1) = " http://www.mylocation.com "


1
वास्तविक हाइपरलिंक (सम्मिलित करें >> हाइपरलिंक) या हाइपरलिंक का उपयोग कर =HYPERLINK()?

क्या इसका कोई फॉर्मूला होना चाहिए? वीबीए समाधान के बहुत सारे हैं।
चार्लीआरबी

जवाबों:


53

आप एक मैक्रो का उपयोग कर सकते हैं:

  • एक नई कार्यपुस्तिका खोलें।
  • VBA में जाओ (Alt + F11 दबाएं)
  • एक नया मॉड्यूल डालें (सम्मिलित करें> मॉड्यूल)
  • एक्सेल उपयोगकर्ता परिभाषित फ़ंक्शन को कॉपी और पेस्ट करें
  • VBA से बाहर निकलें (Alt + Q दबाएं)
  • इस कस्टम एक्सेल फ़ंक्शन के लिए सिंटैक्स का उपयोग करें: = GetURL (सेल, [default_value])

     Function GetURL(cell As range, Optional default_value As Variant)
     'Lists the Hyperlink Address for a Given Cell
     'If cell does not contain a hyperlink, return default_value
          If (cell.range("A1").Hyperlinks.Count <> 1) Then
              GetURL = default_value
          Else
              GetURL = cell.range("A1").Hyperlinks(1).Address
          End If
    End Function
    

4
@igor आप सेल में "रेंज (" ए 1 ") का उपयोग क्यों कर रहे हैं। इसे बाहर निकाला (-> cell.hyperlinks.count और cell.hyperlinks (1) .adress) और यह पूरी तरह से काम करता है। मैं यहां "रेंज (" ए 1 ") के उद्देश्य से उत्सुक हूं।
PO

यह मान लें कि क्या हाइपरलिंक के अंदर कई लिंक हैं। यह सिर्फ एक विचार था, महान यह आपके समायोजन के साथ काम करता है। :)
इगोर हे

अपने हाइपरलिंक किसी दस्तावेज़ टुकड़ा (जैसे, शामिल है #something), कि में संग्रहीत किया जाता SubAddressहै, तो आप CONCATENATE करने की आवश्यकता होगी Address, "#"और SubAddress
gilly3

चूंकि पैरामीटर cellएक रेंज ऑब्जेक्ट है, जिसमें एक से अधिक सेल हो सकते हैं। Range("A1")के रूप में फिर से लिखा जा सकता है Cells(1)। यह फ़ंक्शन को केवल पैरामीटर में पहले सेल पर विचार करने का निर्देश देता है cell
क्रिस बी

19

मुझे केवल एक एकल कक्ष के मान से पता निकालने की आवश्यकता थी, इसलिए मुझे यह छोटा कार्य आसान लगा:

"ब्रूट फ़ोर्स" मैक्रो के बजाय, आप एक उपयोगकर्ता-परिभाषित फ़ंक्शन भी बना सकते हैं जो किसी भी हाइपरलिंक के लिए URL को निकाल देगा और वापस कर देगा, जिस पर यह बताया गया था:

Function GetURL(rng As Range) As String
     On Error Resume Next
     GetURL = rng.Hyperlinks(1).Address 
End Function

इस मामले में आप इसे जहाँ चाहें वहाँ रख सकते हैं। यदि आप चाहते हैं, उदाहरण के लिए, A1 में हाइपरलिंक से URL सेल C25 में सूचीबद्ध किया जाना है, तो सेल C25 में आप निम्न सूत्र दर्ज करेंगे:

= GetUrl (A1)

http://excel.tips.net/T003281_Extracting_URLs_from_Hyperlinks.html


2
function EXTRACT_URL(input) {

  var range = SpreadsheetApp.getActiveSheet().getRange(input);
  var re = /^.+?\(\"(.+?)\",.+?$/;
  if (input.indexOf(':') != -1) {
    var formulas = range.getFormulas();
    for (var i in formulas) {
      for (var j in formulas[i]) {
        formulas[i][j] = formulas[i][j].replace(re, "$1");
      }
    }
    return formulas;
  } else {
    return range.getFormula().replace(re, "$1");
  }

}

स्प्रेडशीट = EXTRACT_URL (ADDRESS (पंक्ति (A4), 1,4)) में इसका उपयोग करके अन्य उद्धरण छोड़ें जो सेल संदर्भ में पास हो जाते हैं। अन्यथा आपको रेंज संदर्भ को हार्डकोड करना होगा। फिर आप इस फ़ंक्शन को एक सेल से दूसरे सेल में कॉपी कर सकते हैं।
वॉकर रोवे
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.